我在我的应用程序中使用“允许任意加载”标志。 Apple宣布,自2017年1月起,所有应用程序都将需要ATS。这是否意味着我当前在AppStore上载的应用程序将无法正常工作,或者我将无法与非应用程序一起发布新的Binary。 -HTTPS配置?

最佳答案

商店中已有的应用将继续像今天一样运行; iOS将继续识别ATS异常。

如果您提交新版本的应用程序,则需要在审核说明中向Apple提出理由才能获得批准。

在许多情况下,禁用ATS是唯一的选择,例如:

  • 您的应用访问用户提供的URL,并且您不能要求使用TLS
  • 您的应用访问了某种形式的设备(例如嵌入式系统),这些设备不支持TLS或不支持TLS,或者不向这些设备颁发证书(可能是数千个证书)。

  • this thread中讨论了这种情况,其中包括Apple员工的一些评论。本质上,

    ...对于大多数ATS例外情况,App Review将要求“合理辩解”。这里的目标是淘汰那些最初发布ATS时只是在全球范围内将其关闭并继续使用的人。那将不再被允许。

    如果您的应用当前存在ATS异常,则应查看以下内容:
  • 是否需要全局禁用ATS或仅针对特定域禁用ATS?
  • 如果您已全局禁用ATS,是否可以针对特定域(例如已知的Web服务API端点)重新启用它?
  • 如果您使用的是WKWebView,是否可以切换到NSAllowsArbitraryLoadsInWebContent(为此,您的应用必须仅是iOS 10才能满足要求)?

  • 例如,我有一个应用程序,允许用户指定要在WKWebView中显示的网页。我指定了NSAllowsArbitraryLoadsInWebContent,但也指定了NSAllowsArbitraryLoads,因为我希望我的应用程序可以在iOS 9上运行。最后,我配置了NSExceptionDomains异常以为我的应用程序使用支持TLS的Web服务重新启用ATS。

    在我的应用程序审查说明中,我解释了由于用户内容和iOS9支持而需要NSAllowsAbitraryLoads的问题。

    10-08 06:13