How do you make your app work on older iOS versions

I am a new developer and I have made an app on xCode 7 using swift 2, however my app wont work on iOS 8. I want to release my app but i know iOS 9 wont be out until Fall and Most people will stay on iOS 8 for a while. is there a way to make my app work on 8 as well as 9?


Thanks,

Sam Jones

>however my app wont work on iOS 8

What does "won't work" mean, exactly? What errors are you seeing?

You may want to wait for Xcode 7.x and iOS 9 to be released to the public and ok for submittal to the store before you take too much action right now. I doubt those two will mean zero support for < iOSs. Note this from the release notes:


Build System

Deployment of 64-bit-only iOS apps is supported to devices running iOS versions earlier than 8.0. (21195657)


Hello


You need tell to xcode what isthe version of iOS your code will be compiled, so if you put iOS9, Your app will not work in users devices because today the oficial version is 8.4. You can test in iOS9, but must be marked iOS 8.x to publish.

You can make your app work on 8 and 9, but it will take more work. You won't be able to submit the app from Xcode 7 until shortly before iOS 9 is released. You can install Xcode 6.4, target iOS 8, and submit to the store now. But, this almost certainly means you will have to make some code changes (especially if you used Swift) and do some testing on the 8.x simulators and some devices that still have 8.x on them. Or, if you want to wait to submit the app until it is possible to do so from Xcode 7, you can set your project's deployment target to iOS 8.x, and again, modify your code and test on iOS 8 simulators/devices. There are several ways to handle things that are different or missing in different iOS versions, such as the if #available statement (Swift), comparing NSFoundationVersionNumber, testing respondsToSelector, or testing the result of NSClassFromString().


EDIT: Changed "... project to target iOS 8.x..." to "... project's deployment target to iOS 8.x..."

You should read the SDK Compatibility Guide. It explains the overall process here. The guide focuses on Objective-C but most of the techniques shown there have Swift analogues.

Also, if you're using Swift 2 you should definitely read up on its new availability features. These are introduced by the Xcode Release Notes and covered in depth by the latest The Swift Programming Language

Share and Enjoy

Quinn "The Eskimo!"
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi there, I know this a very old thread but the topic is still a valid one.


My app currently only works with iOS devices version 11 and up. Some of my users are using iPad 2 and 3's which are capped at using iOS 9.3.5 (or 9.3.6 if they have the GPS bugfix update of iOS).


Does Apple have a method or system in place for developers to target older devices with the same app but using different builds within the Appstore?


With Android in the Google Play store I can specify different versions of my app (specified by my published version number like 1.0.149) to target deployment on ranges of android devices. So I could specify 1.0.149 is for Android 4.2.0 to Android 4.4.4; App version 1.0.150 is for Android 4.5 to 9.0.


This allows me to be able to support a greater number of devices.


Is there any such method to do this with Apple? If there isn't then the only work-around I could see doing is creating a whole new app just to to support those other versions. Like "Myapp Classic" or something.

>Does Apple have a method or system in place for developers to target older devices with the same app but using different builds within the Appstore?


Sort of...


In some examples, when an older download for an older iOS pre-exists in the store, the store will offer it to a user. This is not a scheme the dev can employ on their own, at will, however. The dev-facing fact is you can only place one build/version of the same app in the store at a time.


That said, Xcode allows the dev to build one app that is capable of supporting a range of iOS versions. Using the current v10.3 Xcode as an example, with iOS 12.x as the base or max iOS supported, the Deployment OS setting can be lowered to expand support, say for iOS 11.x


This of course means the features and code used in the app are compatible with those settings, the specifics of which vary depending on.


If you have additional questions/discussion, pls.start your own unique thread, rather that tagging someone else's, (especially one so old) so you can better track and close if solved, etc., linking to this this thread as needed, thanks and good luck.

Refer this link: http://https://developer.apple.com/library/archive/qa/qa1910/_index.html

And set Build Setting - iOS Deployement Target is iOS 8.0

How do you make your app work on older iOS versions
 
 
Q