iOS Sdk Version vs iOS Version

When you update XCode it updates the sdk version, but do changes in the sdk take effect for apps running in a lower iOS version or only the corresponding iOS version or higher? For instance, https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-18_1-release-notes Do changes listed in the notes only happen for apps that are running on iOS 18.1 devices or on any device with the app compiled against the 18.1 sdk version?

Am I the only person who finds the docs totally unclear on this?

Answered by DTS Engineer in 826337022
Written by MrWizardCoder in 775032021
Am I the only person who finds the docs totally unclear on this?

No )-:

This topic in more complex than it might seem. In most cases a change applies to the OS release where the change was made, and then to future OS releases after that. However, there are some exceptions:

  • If a change might cause significant compatibility problems, Apple can guard it with an SDK check (a linked-on-or-later check). That is, the OS only enables the change if the current program was built with a new SDK.

  • Some changes can back deploy. That is, once you build with the new tools then the change applies to all OS releases on which your app runs.

Usually the releases notes call out such exceptions, but that’s not universally true.

If you have questions about specific changes, feel free to add them here and I’ll take a look.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Asides, if an iOS version contains bug fixes, does the app need to be updated to that ios version for the fixes to happen or would the device os update suffice?

Written by MrWizardCoder in 775032021
Am I the only person who finds the docs totally unclear on this?

No )-:

This topic in more complex than it might seem. In most cases a change applies to the OS release where the change was made, and then to future OS releases after that. However, there are some exceptions:

  • If a change might cause significant compatibility problems, Apple can guard it with an SDK check (a linked-on-or-later check). That is, the OS only enables the change if the current program was built with a new SDK.

  • Some changes can back deploy. That is, once you build with the new tools then the change applies to all OS releases on which your app runs.

Usually the releases notes call out such exceptions, but that’s not universally true.

If you have questions about specific changes, feel free to add them here and I’ll take a look.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Your response was very insightful although i think my confusion stems from the weird mentions of the SDK in the iOS release notes. https://developer.apple.com/documentation/ios-ipados-release-notes it says ”learn about changes to the sdk” but if its all changes to the sdk then why is it the ios and not ios sdk release notes? whats apples definition of SDK? if changes are made from user updating the ios without needing developer to take action, calling it an sdk change is weird. IMO.

Thanks for explaining that. I tend to agree with you here. I see what that abstract is getting at — those releases notes are focused at developers, which is different from the release notes for users — but focusing on the term SDK isn’t accurate. The release notes cover both SDK and OS-level changes, with a developer focus.

Note that the abstract for each individual doc, like iOS & iPadOS 18.4 Beta Release Notes, is:

Update your apps to use new features, and test your apps against API changes.

which I think you’ll find to be less confusing.

Anyway, I recommend that you file a bug against the abstract, explaining why it confused you. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

iOS Sdk Version vs iOS Version
 
 
Q