how to set minimum os required in iphone - iphone

I have to check whether my app is compatible with iOS 4.0 or not.
I have tried looking out for certain forums but all I can see is to change the iOS deployment target.
I have done doing so also but still my app is running fine. I have changed my deployment target to 3.0 but still it works fine. Since I have used Gesture recognition which was introduced later. It must crash my app (but still it is working fine).
So I want to know Is there any other way out to check my compatability.
Or is it the problem because I am running it on Simulator rather than on device(my device has iOS version 4.2).
Any comments or answers are really appreciated.

Yes thats the reason that your app is not crashing because you are running it over simulator which has the ios version 4.2.Because now your ios version is updated on the simulator so you are able to test the Gesture Recognition over that.You are correct .

If you have an iPhone that is certified for distribution you can just run it on your device and test your firmware versions from there. Hope that helps...

Related

App runs on iphone only once then xcode cannot find the Iphone anymore

So this is the issue I am having. When I plug in my iphone xcode recognizes the iphone and everything checks out fine. I can then build my project and run it on the device. It works fine, for the first time. If I build the project again and try to run it again xcode gives this error:
No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a recent enough version of iOS to run your application or choose an iOS simulator as the destination.
Also instead of my phone name in the top left it changes to iOS device.
Any ideas?
thanks
This is caused by your versionnumber of your iPhone/iPod/iPad. If you've set up the Deploeyment target to high like if you have an iPhone with IOS5 and the target is IOS6 this error occurs. You may had simply to decrease the value to something under your device IOS versionnumber or the same BUT not above the value otherwise it won't work.
Go to your project > traget> deployment target > set to something that you want.
Thats all you need to do.
I figured out my issue. It turns out that my Cord was bad. Once I switched out the cord everything worked great.
Thanks for any help anyone gave.

Xcode deployment target

If my deployment target is set to iOS 4.1 and submitted to apple, and they test the app on iOS 4.3, would that cause the app to malfunction? My app was rejected for a bug that I am unable to recreate on my iPhone 4. The exact same device model they tested the app on. I simply cannot find the bug or error in my code. Any advice would be greatly appreciated.
If you build your app to target iOS 4.1 it should run on iOS 4.3. It's possible that your app does something that works on 4.1 but causes a problem on 4.3; I had that myself with an app already in the store, and had to post an update so it worked correctly under a newer iOS release.
Note that you can tell the iOS Simulator what version iOS to simulate: on the Hardware menu, select Version, and subsequent runs will be tested against that version of the system libraries.
The simulator is not a perfect reproduction of a real device, but hopefully you can do this to reproduce the behavior that Apple has seen on their devices.
Did you test it on your iPhone 4 with iOS 4.3? There's two parts to the puzzle. If they rejected it for crashing under iPhone 4, you have to check all the different iOS versions you claim to support. The target iOS 4.1 should still make it work on 4.3, you just might have a crash (which apparently you do). Through testing with that actual software version on your iPhone, you'll find the bug and hopefully squash it. Good luck!

setting deployment target for iPhone app

i tested my application by setting deployment target to 3.0 on iPhone device with 4.3.2 version and my iPhone app was running smoothly so my question is that do i still need to test my app on iPhone device with lower version like 3.0 before submitting it to app store.
Thanks in advance for your any help.
Yes: if you call any API that was introduced after iOS 3.0, it will crash. The only way to be sure is to test on an actual 3.0 device.
Yes you definitely should test your application on a device with iOS3 to ensure that everything is working.
Setting the deployment target to iOS3 only ensure linking. Do not forget that iOS3 has not only different APIs, but also differents behaviors for same components, even with same code.
And behaviors can even differs from Simulator to Device!

Testing in iOS 3.1.3 with the latest Xcode

How do you test an app in iOS 3.1.3 with the latest Xcode build?
Is it possible to do this in the Simulator? If not, is it possible to downgrade a device to iOS 3.1.3?
Yes, you can downgrade a device. It is not officially supported but I've done it on two 3Gs with success for testing on 3.1.3.
First find a tool called RecBoot by someone called the0rkus, runs on Intel macs only. This brings the phone out of recovery mode once you have loaded the 3.1.3 software.
Find the .ipsw file for your device, as you know it is a different file for iPhone 3/3GS or iPod Touch. Load this software to the phone via iTunes in the usual way, holding the option key while clicking "restore". Wait while it loads.
When it finishes and reboots you will find iTunes complains about this version being incorrect. Situation is the software is loaded, ready to go, but it lacks the final blessing from Apple. RecBoot brings it out of this mode, "waking" the phone into normal ready-to-activate state. Once you have gone through connection to iTunes with a SIM inserted you have a phone just as if you had never gone to 4.0.
Too bad we have to resort to a hack to test with older devices but I don't know any other way. It would be nice if the simulator could still run 3.1.3, nice if setting deployment target would flag pre-3.2 features.
You can also install the older Xcode 3.2.1 with iPhone SDK 3.1.3 but the hardware is the true test of whether your software really works. Given that, you could probably skip finding and using it - although there is no quicker way to find everything that you can't use in 3.1.3. There is no problem having multiple copies of Xcode of different versions installed but it is a good idea to uninstall them with the script provided in /Developer/Library/uninstall-devtools (read the readme included with each Xcode distribution)
You need to test the app on a device running 3.1.3.
The deployment target is one thing (that you set to 3.0 so that you can test on the device)
But if you are looking debugging with a specific version of the SDK, you should have the respective XCode installer.
Does your simulator have a menu marked "hardware" with a variety of older OS version choices?
(Mine does.)
Just use that.
It won't be 100% "actual device" test... but it's a WHOLE lot easier.
(None of the simulators are 100% tests anyway.)

Build an iOS4 app that will also deploy on iPhone OS 3.x devices

I've got a couple of applications in the App Store at the moment which I've had ready after the release of iOS4. If I try and download one of these in the App store on a 3.x device, it will tell me I need to upgrade. Is there a way to make my application not do this, as I don't think I am using any API calls specific to iOS4.
I originally thought that this could not be done but I just now installed 'Plants vs Zombies' and 'Angry Birds' on my iPod Touch (running 3.1.3) so it must be possible as I'm sure these have released updates recently, and being in the top5 games, I would have thought they were developed using the iOS4 SDK. I am hoping it is just one value somewhere but if anyone could let me know how to do it that would be awesome :).
Easy. Open up your project info.
Find this line "iPhone OS Deployment Target" select 3.0
You can still develop with the latest xcode and current 4.0 SDK, but if you dont make any 4.0 calls this should allow you to weak link to 3.0+ and allow apps to work.
You really should test this on a 3.0+ device to see if it works though. You can still set your Base SDK to 3.2 or 4.0.