iOS version to be consider when developing iPhone/iPad applications - iphone

What are the iOS version do i need to consider when developing iPhone application?
Based on my research, iOS 3.x, 4.x and 5.x have been considers as available iOS version. But when I consider with devices there lack devices which is running iOS 3.x.
Can someone help me with finding trusted sources where I can find these details i.e source from Apple or something?

From Apple themselves, 93% of users are on iOS 6:
https://developer.apple.com/devcenter/ios/checklist/
Unless you need to support the iPad 1 or the very old iPhone 3G (not 3GS), go for iOS 6! :)

You can find the percentage of users in this post:
Most current iOS version distribution percentage?
And then decide by yourself which version you should develope to

Related

Will iOS 7 support application developed for older version of iOS

We are planning for a new mobile application for iPhones/iPads this month and we are outsourcing this project as we dont have much knowledge about the subject. Could someone tell me if current iOS applications will run on iOS 7?
I would appreciate help in this as I tried to search but could not find related articles as most of the articles talk about features and not backwards compatibility.
Sure. It will support older versions of iOS. If not millions of applications in Appstore will be unusable in iOS 7. You need to download iOS 7 SDK once available to exploit iOS 7 specific features, thats all.
Yes current iOS application will run on iOS 7, because apple will take care that if they launch new iOS then they create new iOS in such a way that it's always compatible with older iOS apps other wise if someone upgrade the iOS and the apps of previously developed will not work on it then they loose their customers/users. So don't worry new iOS 7 will also support apps developed for iOS5/iOS6. There were only new features in iOS7.
Although iOS 7 has seen a major overhaul in UI field as well as several back end changes too. But the main point for your question is that any application if working on previous versions of iOS should work in iOS 7 too. The OS will take care of all the UI instances drawings in different versions of OS. The situation where the applications supporting newer versions of OS not working on older versions is that they use some features only available to a specific version of OS or later.
It would run in iOS 7, but probably not as you would expect it to run, so my recommendation is to create 2 (or 4 if you build for iPad) 1 for iOS 6 - and one for iOS 7 + just detect the iOS version and load the storyboard for the appropriate version
It is always better to start development in the latest available version of iOS. In this case 7 is the latest with all the support for developers. You can get the relative iOS SDK and Xcode.
Long Story Short: Start Development in the latest iOS and nothing shall go wrong.
From the research I had done, indeed app built using 6.1 SDK and Xcode 4.6 will run on iOS7, however, the app will have an iOS6 look and feel on iOS7.

Is there any way to develop iPhone app under iOS6 that targets iOS 3.1.2?

I have a very frustrating experience with recent iOS development. The situation is:
I have developed an iPhone app which targeting iOS 3.1.2, and I am about to submit to AppStore.
What I received from Apple after submission is:
I have to support iPhone 5 tall screen.
The reject message is:
iPhone 5 Optimization Requirement
To support iPhone 5, I need to update the UI and include a launch image: Default-568h#2x.png
After having the Default-568h#2x.png included, Apple rejected my submission again with reason:
Invalid Launch Image - Your app contains a launch image with a size
modifier that is only supported for apps built with the iOS 6.0 SDK or
later.
OK, I am kind of stuck, Apple force me to support iPhone 5 screen, yet, it doesn't allow me to upload app under iOS 6 with iPhone 5 tall screen support.
So I try to compile the code with iOS 6 SDK, then what I find is in order to support iOS 6 I need to have XOS 10.7. Mine is 10.6.8.
To support 10.7 I need to upgrade my Mac to have 2GB memory and i3 duo core CPU and brah brah brah brah...which I don't have at the moment.
So, my question is:
I have XCode 3.2.2, XOS10.6.8, I want to develop iPhone app for iOS 3.1.2 and able to publish in AppStore, how can I do it?
Thank you.
Regards,
Apple will not accept an app targeting an iOS version that old. I don't think they will accept anything less than 5.0 anymore (might be 4.3 but I doubt it).
Sorry, but Xcode 3.2 is years old at this point. Apple simply doesn't support this. iOS 3.1.2 has such a negligible install base that there is almost no reason to target it any more. To support the latest features of iOS (e.g. iPhone 5 support) you need to be building apps with the latest SDK, and you will need to upgrade your development machines and Xcode. You have no choice.

Supporting old iOS versions and devices

I need an iOS app to be compatible with previous iOS versions, at least from 4.0, and also with prior devices (iPhone 4S, 4, 3GS... and likely all iPad devices). I found some posts dealing with the iOS versions backwards compatibility that already have some years (for example, How to build against older iOS versions with the latest Xcode downloads?), and I donĀ“t know if this is deprecated or it still is the way to proceed, at least concerning the app building. Regarding programming issues, I guess I should check the documentation to know if the SDK features/libraries/frameworks I want to use are supported by all the iOS versions I want to be compatible... And having such information, how could I check programmatically the iOS version the device is running, in order to provide a certain feature or not?
On the other hand, regarding iOS versions and devices running them: could I find any Apple document listing which iOS versions supports each existing device? What hardware-dependent issues should I take into account while developing the app?
Thanks so much
Edit: Target architecture(s) is the only hardware consideration I've to take into account? Knowing that, for example, an iPhone 3GS is able to run, and is running, iOS 6.1.3, can I assume that the device will then support all the SDK's features, or I still need to check for the availability of such features depending on the device?
with the newest xcode version that supports iOS 6.0, you cannot develope for devices with iOS < 4.3 (lowest base SDK), and also the version that supports iOS 4.0 doesn't support iOS 6.0. For older devices you have to set the Architectures to armv6 armv7 in you project-settings tab "Build Settings".
for checking the iOS Version running, just check the available posts here at stack, you will find one that fits for you ;)
All in one I would set the base SDK to 5.1 because it's the last that can be used by iPad 1 and iPod touch 3. gen. and long enought available so everyone should have the latest update.
Older devices can have only iOS 4.2.x and are not supported by current xcode (4.6.2 (4H1003)).
iOS Support Matrix v2.4
This version is updated and includes iOS 7.
Link: http://www.iossupportmatrix.com
There is a great infographic that shows what versions of iOS are supported by which devices at http://iossupportmatrix.com.

Is it worth it to continue supporting iOS 4.x when iOS 6 is released?

I am working on a major feature update for my application and would love to include features such as iCloud, Core Data, ARC and storyboards among other things. The issue is that I don't have data on how many users are still running 4.x. I realize that the ideal solution would be to support both at once and just select the available features based on what version the particular device was on, but my upgrades would be so substantial that this would be very difficult. Does anyone else have reliable data on the percentage of users on older versions? And also would it be advisable to release an iOS 5+ version of my app separately as an "App 2.0?"
... my company`s app still suport ios 3.x ,although only 2% on ios 3.x and below... but we can do the vast majority of ios4.0+ effect with 3.x and below API.
Here's an article for reference.
80% on iOS5
With the OTA updates, Apple devices are normally upgraded very quickly. The decision to create an iOS5 only app early this year was not too hard to make and more so now.
I believe iOS users are the fastest ones to upgrade when there's a new update. Also I don't know if it is accepted to have 2 different apps for different versions of iOS. What you could do is having the app check what version of iOS the app is running and exclude the features that are unsupported for lower versions.
Can't find any really reliable sources but you could check out some update stats around.
Link
Changes for ios 6 and Xcode 4.5.x
Xcode 4.5.x (and later) does not support generating armv6 binaries.
Now includes iPhone 5/armv7s support.
The minimum supported deployment target with Xcode 4.5.x or later is iOS 4.3.
The minimum support for iPhone is iPhone 3GS or later as earlier versions use armv6.

What version of IOS to use when upload app to appstore?

I am just about to upload my first app to appstore :-)
I have tested the app on an iPhone 3G (IOS 4.2) and my iPhone 4. What version of code should i upload and:
If i upload 4.2 to support iPhone 3G, will that cause any problems with newer phones?
If i upload the latest version of the code i guess iPhone 3G's will not be able to run it?
Is it worth while to still support iPhone 3G?
Can someone please recommend me what to do?
If you upload a version that the 3G does not support, then all 3G users will not be able to download the app.
If you upload a version that is supported by 3G, then only if the users have updated their firmware will be able to use the app.
In other words, the role of thumb is: upload the one that is tested on the latest firmware, but can be launched from as many firmware version as possible.
That might mean to just upload the one that is tested on the least firmware possible, but be careful because newer firmware versions might stop supporting certain APIs that you might have used, and then all newer (potential) customers will be locked out of your app.
If i upload 4.2 to support iPhone 3G, will that cause any problems with newer phones?
No.
If i upload the latest version of the code i guess iPhone 3G's will not be able to run it?
You need to compile for arm6 in addition to arm7 architecture.
Is it worth while to still support iPhone 3G?
That's a matter of opinion. This there any requirement for you specific app that requires a iPhone 3GS?
Choosing the latest ios as the deployment version is bad idea. iOS 4.3 isn't supported by Verizon devices, which means that you will lose a big portion of US users.
I believe most of apple's apps are using "iOS 3.1" as the deployment version, and i would recommend choosing the this as the lowest supported version.
iOS 3.1 is the last version supported by the original iphone, which guarantees that all users can use your app. Note it's not enougth to just pick 3.1 as the deployment version. you will have to test it with a REAL 3.1 firmware. There are a few guides on downgrading your iphone to 3.1, which is helpful for testing (such as http://lifehacker.com/5572003/how-to-downgrade-your-iphone-3g%5Bs%5D-from-ios-4-to-ios-313)