Application Transport Security (ATS) and app submission

I searched online extensively but could not find any official information on the following questions.


  1. ATS is applicable only on iOS 9 onward. What happens to older apps (built for iOS 8.x and below) when the device is upgraded to iOS9. Will they have ATS disabled by default or will they stop functioning if they are not ATS compliant?
  2. Will applications that set the global ATS disabler flag (allowarbitraryloads) be admitted to the app store?
  3. After iOS 9 releases, can apps linking to older SDKs can still be submitted to the marketplace? Apple is currently accepting apps with deployment_sdk of iOS 5
  4. After iOS 9 releases, should apps be built with the release version of the SDK?
  5. I heard that if an app is built against beta versions, it will be rejected. Please correct me if I'm wrong.


Any help is really appreciated. I'll compile the answers in this post to make it easy for later reference.

Accepted Reply

1. ATS is applicable only on iOS 9 onward. What happens to older apps (built for iOS 8.x and below) when the device is upgraded to iOS9. Will they have ATS disabled by default or will they stop functioning if they are not ATS compliant?

Apps built against earlier SDKs will behave as they always have.

2. Will applications that set the global ATS disabler flag (allowarbitraryloads) be admitted to the app store?

I don't know.

3. After iOS 9 releases, can apps linking to older SDKs can still be submitted to the marketplace? Apple is currently accepting apps with deployment_sdk of iOS 5

The deployment target is completely independent of the SDK that you're building against. (i.e. Apple are not accepting apps built against the iOS 5 SDK)

4. After iOS 9 releases, should apps be built with the release version of the SDK?

Apps intended for release should always be built against a release version of the SDK

5. I heard that if an app is built against beta versions, it will be rejected. Please correct me if I'm wrong.

Correct.

Replies

1. ATS is applicable only on iOS 9 onward. What happens to older apps (built for iOS 8.x and below) when the device is upgraded to iOS9. Will they have ATS disabled by default or will they stop functioning if they are not ATS compliant?

Apps built against earlier SDKs will behave as they always have.

2. Will applications that set the global ATS disabler flag (allowarbitraryloads) be admitted to the app store?

I don't know.

3. After iOS 9 releases, can apps linking to older SDKs can still be submitted to the marketplace? Apple is currently accepting apps with deployment_sdk of iOS 5

The deployment target is completely independent of the SDK that you're building against. (i.e. Apple are not accepting apps built against the iOS 5 SDK)

4. After iOS 9 releases, should apps be built with the release version of the SDK?

Apps intended for release should always be built against a release version of the SDK

5. I heard that if an app is built against beta versions, it will be rejected. Please correct me if I'm wrong.

Correct.

Thanks a lot for your response. Really appreciate it.


1. Just to confirm, you mean 'apps built for iOS 8, that are non-ATS compliant (say app loads some HTTP resource - and not HTTPS) will continue to function as usual when installed on an iOS 9 device?

#2,4,5: thank you!

3. Oh okay. So is there a minimal deployment-target and base-sdk limit being enforced for being accepted into the appstore?

At last check, apps must be built against at least the iOS 8 SDK. In theory, I don't think there's a minimum deployment target, but in practice, you'll probably run into unfixable compatibility issues, like app icons needing to be different file types for older OSes, lack of an armv6 compiler in Xcode 4.5 and later, etc., making it impossible to submit something that targets older devices or OSes past a certain point.

From my research and testing, #1 "Apps built against earlier SDKs will behave as they always have." is incorrect.


I have found that apps built against iOS8 are behaving fine, but apps built against iOS7 are having ATS enforced by the release version of iOS9. This is breaking a lot of things in older apps...


Going to file a bug, but it'll probably be lost - wanted to post here so you (clarkcox3) would be notified, hopefully.

I agree with EGB.

What are the App Store review policies with regards to exceptions? Any chance of rejections?