IPhone & IPad: Universal App, Which OS version do my users need? - iphone

I have a universal app for ipad and iphone. What I'm trying to determine is what OS version do my users need to have in order for my app to work?
In Xcode, in the top left hand corner I see:
"Device - 4.0 | Release | MyAppName"
Does this mean they need to have ios 4.0? Also, the weird thing is that my ipad is running ios version 3.2.2 but for some reason it works when I build&run the program on the device...
Can anyone help me out on how this all works?
Thanks in advance

No, this doen't restrict the minimum OS. In the build settings, you should set the base SDK as high as possibile (otherwise the newest devices may not be able to run it), but set the iOS deployment target to as low as possibile (the lowest for an universal app is 3.0 - but check if all your classes that you are using are available in 3.0), because this tells the min. iOS it can run on.

Related

Will iphone 5.1 deployment target reach all iphones upon release of ios 6?

I am new to iphone app development and am wondering which deployment target to use (as ios 6 approaches). My app is simple (http web service interaction, map) and my natural inclination is to target 3.1 to maximize potential use. However, I understand that ios 6 will soon be available to all iphones and I presume it will be widely adopted.
So, if I target 5.1 today, will my app be available to most, if not all, iphone users once ios 6 is released?
Right now, requiring a minimum of 5.1 is a bit bold in my opinion, but that depends on your app. It is customary to support the current version and the previous major release.
If you want to expand your target, you may considering going back to 4.3 or even all the way down to 4.0. But 3.x is practically obsolete. but:
Warning: Don't target a version you can not test on device. If you don't have a device running 4.0, testing your app only on the 4.0 simulator is not recommended (although perhaps it is OK. No assurance).
The iPhone 3G can run up to iOS 4.2.
All other phones and iPads can run the latest OS (5.1.1)
Not sure about iPod Touch devices but 3rd (and 4th) gen. should run iOS 5.
You can use 5.1.1 as deployment target if it is available to your menu.. if not 5.1 is best for your needs for now.
This way all (Who have not updated to IOS 6) can use your app...
Best luck for app development.

Xcode 4.3.2 - Base SDK for Distribution of App

I am trying to distribute an iPhone App to the App Store for the first time. Currently, I am following this guide: Submitting iPhone Apps To The Apple App Store – A Step by Step Guide. Currently, I am on the step where I have to set the Base SDK field value. See, the screenshot.
As you can see, iOS 5.1 is the only choice available there. Now, if I set it as Latest iOS(iOS 5.1) - the default value - will the distributed app will be able to run on older OS's, for example iOS 3 or iOS 4? If not, then what will I do to make it run on older OS. Or, is there anything I misunderstood about BaseSDK?
No worry it will function in the older os you need to keep the deployment target minimum SDK which you can find in the picture if you updated the xcode with simulators of IOS 4 and 5 you can get these options
Update
Basically it means that you're going to be able to use all the API that is public in 5.1 SDK. This has nothing to do with "Which phone your app can run on".
iOS deployment target on the other hand, is asking you which devices can this app run. This is quite a dangerous question, since you can then say from iOS 3.0 to 5.1 for example. This means that your app can be installed in any iPhones running iOS 3.0 to 5.1, no matter what the phone is. That means the original iPhone and iPhone 3G can run your app if they have at least iOS 3.0 installed. You should test your app carefully if you decide to do this. Apple does not provide any way to test on older OS. You'd have to devise that strategy yourself.

How do you test against a specific version when you don't have a device with the version?

I have 3.1.2 device and have used 3.1.2 as minimum iOS requirement for my app.
Now I want to set the minimum iOS requirement for my app to 4.0.
The problem is it seems there's no way I can upgrade my device to 4.0 without jailbreaking.
(and it seems if I jailbreak my device, I won't be able to test IAP)
Hence, I can only update the device's iOS to 5.0, and I won't have 4.0 device to test against.
What do you do when you are in such a situation?
Yes that is a problem, i've faced my self. I still own an iPhone 3G which is still running 4.2.1 and I can down grade it to iOS 4.0 My iPhone 3GS and iPhone 4S are stuck on iOS 5.
I've used testflight to for an open beta to get 20 test with different iOS version, which if it is possible can help a bit. But getting and iPhone 3G or second gen iPod touch might help.
You can install all version of the iOS (up to the one they support) on them since there is real install check done. You might need a tool to finish the installation if it hangs on the final step, but there is no need to jailbreak them.
You may need to buy an old used iOS device running the old OS version which you want to test against. You could sell your other test device with an unusable OS version to help pay for it.

Will iPhone base SDK allow what iphones can run the app?

I have been developing an iPhone app and now I am trying to build the binary.
I have noticed the base SDK is set to iPhone 4.0. Does this mean only iPhone 4.0 users can run the app?
I can change it to the lowest iPhone device 3.2, but how can I change the target so that I can test on the simulator in OS 3.2?
The Base SDK should be set to the latest iOS version you want to support. To also support older phones, set the “Deployment Target” build setting to the lowest iPhone OS version you want to support. Currently, I don’t believe you can set it to anything less than 3.0 and still get approved by Apple.
That's OS version, not hardware. You can adjust the deployment target and the base SDK to set up handling the differences between 3.x and 4.x APIs. A tutorial on how to do it is here:
http://iosdevelopertips.com/xcode/base-sdk-and-iphone-os-deployment-target-developing-apps-with-the-4-x-sdk-deploying-to-3-x-devices.html

iPhone Build SDK 4.0 With 3.2 Target Won't Install on iPad OS 3.2

I'm building an app for iPhone/iTouch that I also want to run on iPads (not a universal app, but one that just runs on on iPad with the 1x/2x button in the lower right hand corner).
I'm using iPhone SDK 4.0 and setting the following:
Base SDK: 4.0
iPhone OS Deployment Target: 3.2
When I do this, I can build an app just fine and run it on an iPhone/iTouch, but when I try to install it on my iPad I get the following error: The Info.plist for application specifies a minimum OS version of 4.0
In addition, if I package up the binary and submit it to Apple and it becomes available on the iTunes store, it shows that it's only available for iPhone (not the iPad). When I go to the App Store icon on my iPad, it doesn't even list the app as available (because Apple thinks it won't run on iPad, I assume).
Now I'm really confused, because I thought I understood the difference between the Base SDK and the Deployment Target, but Xcode is telling me I don't.
Can anyone help explain this to me?
As an aside but related question, if I build with Base SDK = "iPhone Device 3.2" it works fine on my iPad, but by doing so would I lose the Base SDK 4.0 built-in multi-tasking feature?
Check the 'Targeted Device Family' setting in your target's build settings. It needs to be set to iPhone/iPad if you want to be able to deploy to both devices.
This build setting automatically sets the UIDeviceFamily entry in the app's Info.plist (You shouldn't update this yourself, though—use the build setting instead.)
UIDeviceFamily