iPhone SDK deployment target on Xcode - ios

I'm hesitant about Deployment target in xCode.
my question : can my application run on iOS 3, 4, 5, 6 if I select on Deployment target 4.3 ?
I can't test my application on an iPhone because I don't have it but I think the application can only run on IOS 4.3 or later
sorry for my bad english

If you use iOS 4.3 as deployment target, that will be the minimum version supported by your app. So, no, it won't run in iOS 3.0 for instance.
Also, you'll need to detect features not present in the iOS actually running the app and program them conditionally.
I'd suggest supporting iOS 5 or better. And definitely forgetting about iOS 3.

That is correct. The Deployment Target is the earliest version of iOS that your application will support.
Note, however, that if you use an API call from your current SDK (4.3) that is not present in the 3.0 SDK, your application will crash on devices running iOS 3.0.
So even though you can set the Deployment Target to 3.0, that will not guarantee that your app will work on an iOS 3 device.
See the Apple Developer documentation for more details.

Related

Does user's iOS version limit their ability to install an app from the app store, is there a way to make it universal? [duplicate]

I wanted to ask how compatibility on different iOS operation systems works in iOS. For example If I develop an app on Xcode 9.2 and Swift 4 for iOS 11, should it work on iOS 9?
I am coming from Android background which you specify the minimum Android OS that is needed for the app to run in the Gradle file. Does anything similar exist on iOS?
Very simple solution:
Set deployment target as 9.0 in your build target general settings. iOS will automatically handle support from 9.0 onwards for a build (your app).
Your app/build will be allowed to use/import frameworks and other libraries, compatible to minimum deployment target, only.
More detail about App Deployment Target from Apple.
Please set your deployment target to 9.0
Yes, it will work on iOS9
With Xcode 9.2 and swift4 you can develop an application for ios8.0 and above.
In your project setting, you have to select your development target
Yes, there is backward compatibility, but for older iOSes you have to check version when using newer API. Luckily we've got availability attributes (#available)
If you want to know HOW it works, basically for Swift your application has its own swift standard library embedded into binary of your application. In case of Objective C – newer iOSes keep sdk's of older versions to maintain backward compatibility.

iOS Compatibility on different iOS Operation Systems

I wanted to ask how compatibility on different iOS operation systems works in iOS. For example If I develop an app on Xcode 9.2 and Swift 4 for iOS 11, should it work on iOS 9?
I am coming from Android background which you specify the minimum Android OS that is needed for the app to run in the Gradle file. Does anything similar exist on iOS?
Very simple solution:
Set deployment target as 9.0 in your build target general settings. iOS will automatically handle support from 9.0 onwards for a build (your app).
Your app/build will be allowed to use/import frameworks and other libraries, compatible to minimum deployment target, only.
More detail about App Deployment Target from Apple.
Please set your deployment target to 9.0
Yes, it will work on iOS9
With Xcode 9.2 and swift4 you can develop an application for ios8.0 and above.
In your project setting, you have to select your development target
Yes, there is backward compatibility, but for older iOSes you have to check version when using newer API. Luckily we've got availability attributes (#available)
If you want to know HOW it works, basically for Swift your application has its own swift standard library embedded into binary of your application. In case of Objective C – newer iOSes keep sdk's of older versions to maintain backward compatibility.

Installing application Developer Target 9.3 on iOS 10

we started to develope an application with swift for iOS.
when we started it latest version was developer target 9.3.
now there is developer target 10 available. Can I install application that created with developer target 9.3 on iOS 10 ?
Yes, You can install lower developer target on higher iOS version.
In short - YES. You won't be able to do the opposite - install targeted as iOS 10 app to device, running with iOS 9.3
EDITED
So, your purposes, I think, maintain as small version, as possible. If you maintain 9.3 version, for example, your app will be available for iPhone 4s, which is not updates to iOS 10. With this ver you will cover more users
Deployment Target is the minimum required iOS version you application needs to run.
You can build an application with SDK 10 that runs under iOS 9. But then you have to take care to not use any function or method that is not available on iOS 9.
Also Always check to see if you are using deprecated APIs; though still available, deprecated APIs are not guaranteed to be available in the future.

I set the deployment target to iOS8 and App store says "Compatibility: Requires iOS 7.0 or later". Can I force app to install only in iOS8 only?

I released an iOS 8 version of my app today and wanted to limit it only to users running iOS 8 (because it uses some new Core Motion APIs that only work with iOS 8). It seems like iOS7 users are still able to download my app, even though the deployment target is iOS8 and the App Store says "Compatibility: Requires iOS 7.0 or later". Can I force app to run in iOS8 only? Does the Deployment Target option in Xcode still control which version of the OS is required on the App Store?
The answer is, you have to set the Deployment Target in three different places, in the project, in the app target, and (in my case) in the extension. If you don't set it in all three locations the app won't show as iOS 8 only.
Deployment target on all your TARGETS is the correct option. It's important to understand the different between "Deployment target" and "Base SDK". Both regard a iOS SDK version, but they have different meanings. To learn what read here.

XCode deployment target iOS 6 = compatibility to?

I seem to be not understanding the effects of a specific deployment target in XCode (4.5) correctly. Specifically, I got an app in the app store that was previously set for deployment target 5.0, meaning on the app store page it says "requires iOS 5.0". So when I now set the deployment target to 6.0 in my next update, does that mean it'll require iOS 6 and otherwise won't start? I'm not using new iOS 6 features in my update.
I guess that means I should stay at 5.0 for my deployment target, but then what is the point of changing your deployment target (provided the one you had used previously is not totally obsolete)?
There are two primary settings used for your targeting your builds:
Base SDK & Deployment Target.
The Base SDK = What are the latest features I want available in this app?
The Deployment Target = What is the earliest OS I want to be able to run this app?
So, if you have both of these set to iOS 6, the user must have iOS 6 to install or run the app.
If you have a Deployment Target of iOS 5.0 and a Base SDK of 6.0 that means it'll install and run in iOS 5.0, but you need to be careful to branch your code and not use any iOS 6.0 features if the user is running on an iOS 5.0 device.
So when I now set the deployment target to 6.0 in my next update, does that mean it'll require iOS 6 and otherwise won't start?
Yes, if your deployment target is iOS 6, then users will need iOS 6 or above to run it. Simple as.
Your deployment target is your baseline for supported devices, it's the minimum version you support. This doesn't mean you can't use iOS 6 specific features, but it does mean you need to take into account iOS 5 users at runtime (See iOS SDK Compatibility Guide)
What developers typically do is update their base SDK. This means they're able to take advantage of the latest abilities of the SDK, to make a better user experience for users on that iOS version. Having a base SDK of iOS 6 does not mean the app won't work for iOS 5 users.

Resources