【问题标题】:iOS 9 App Transport SecurityiOS 9 应用传输安全
【发布时间】:2016-01-17 07:51:08
【问题描述】:

如果您在调试区域收到以下消息,我了解到您应该在 info.plist 中添加 App Transport Security:

“App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时例外。”

我从未在 Xcode 7.0.1、iOS 9 中收到此消息。我也在使用 AdMob,它指出如果 ATS 开启,ATS 可能会影响您的广告展示。但是,我对 AdMob 或 iAd 广告显示测试广告还是实时广告没有任何问题,而且我从未在调试区域收到 ATS 消息。

我还了解到,如果您确实将 ATS 代码放入 info.plist,如果 Apple 发现您没有充分的理由这样做,他们可能会拒绝您的应用。

那么,我如何知道是否需要在 info.plist 中实现 ATS 代码?

【问题讨论】:

  • 当您调用 http 请求时,应用会发出应用传输安全警告。当您调用 httpS 请求时,应用程序不会。我认为 AdMob 正在使用 https 请求,因此您不必担心。 ;)
  • 我使用 iAd、AdMob 和 Chartboost。 iAd 和 Chartboost 怎么样?我有一个 iOS 游戏,我使用 SLComposeViewController 来实现 Twitter/facebook 分享按钮。在 Twitter 分享按钮中,我有一个 http 链接,可以使用它分享到他们的 Twitter 页面上。我是否需要将此 ATS 内容添加到 info plist 中?

标签: admob ios9 xcode7 app-transport-security


【解决方案1】:

基本上,据我了解,ATS 意味着您不能再在对出站 URL 的任何调用中使用 http,因为它们将被阻止。仅当您计划使用 http 调用时,您才需要将此更改实施到您的 plist 中。

为了从 ATS 限制中排除通信,您必须在 info.plist 中指定域名。

除非您使用的某个库具有特定的 url,如果您没有通过不安全的连接(不是 https)联系的特定服务器,则您需要允许这些 URL,否则您无需执行任何操作。

【讨论】:

  • 我不明白你所说的使用http调用是什么意思?我的应用程序是 iOS 游戏。我有一个通过 SLComposeViewController 实现的 Facebook/Twitter 分享按钮。例如,当您单击 Twitter 按钮时,会弹出共享消息,并且其中有一个指向我的应用商店页面的 http 链接,用户可以将其共享到他们的 Twitter 页面上。这个 ATS 事情也适用于我吗?我需要在 info.plist 中添加它吗?
  • 如果您不知道对外部 API 的任何 HTTP 调用,则可能不需要启用它。此外,为了启用它,您需要指定排除域。我会更新我的答案以反映这一点。
猜你喜欢
  • 2016-08-27
  • 2016-01-02
  • 1970-01-01
  • 2016-06-07
  • 2015-12-28
  • 2015-09-17
  • 2016-02-12
  • 2017-03-09
  • 2015-12-19
相关资源
最近更新 更多