【问题标题】:Xcode 7.0.1, iOS 9 App Transport SecurityXcode 7.0.1、iOS 9 应用传输安全
【发布时间】:2015-10-17 18:33:57
【问题描述】:

我在 AdMob 网站上看到它声明要确保广告不受 ATS 影响,我必须在 info.plist 文件中添加一些例外

但我查看了 info.plist 文件,但没有看到 NSAppTransportSecurity 选项。

它还指出“当不符合 ATS 的应用程序尝试在 iOS9 上通过 HTTP 服务添加时,会出现以下日志消息:

“应用传输安全已阻止明文 HTTP (http://)resource 加载,因为它不安全。可以通过应用的 info.plist 文件配置临时异常。”

我在调试区从来没有收到过上面的消息,是否意味着我不需要添加任何 NSAppTransportSecurity?

【问题讨论】:

    标签: admob ios9 xcode7 nsapptransportsecurity


    【解决方案1】:

    您现在应该将所需的密钥添加到您的 info.plist 中。您可能不会立即看到错误消息,因为您没有主动针对 iOS 9,或者库可能以某种方式阻止了这些消息。

    如果您(或库)通过http 进行调用,则需要告诉系统允许任意加载。将此添加到您的info.plist:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    

    如果您通过https 进行调用,但没有使用足够强大的加密,您可以像这样添加域例外:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>whatever.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>                
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
    

    【讨论】:

    • 我已经看到了你写的第一个代码,但是我如何添加它以及在 info.plist 中的什么位置?我没有看到 NSAppTransportSecurity 选项 通过 http 链接进行调用是什么意思?我不明白吗?我有一个 iOS 游戏,唯一将您发送到网站的是我使用 SLComposeViewController 实现的 Facebook/Twitter 分享按钮
    • 您可以向info.plist 添加选项,即使您没有立即看到它。您甚至可以右键单击 info.plist 文件并点击 Open as Source Code 以查看 XML。然后只需将上面的代码添加到底部(在最终的&lt;/dict&gt; 上方)。通过“通过 HTTP 进行调用”,我的意思是您(或者很可能是库)正在通过 HTTP 发出 API 请求。
    • @HELLO 有帮助吗?
    • 它不仅没有帮助,而且不起作用。当我在 plist 的属性列表中输入您编写的第一个代码时: Bundle version string, short
    • 你能把你的 plist 贴在这里吗?
    猜你喜欢
    • 2016-01-17
    • 2016-08-27
    • 2016-01-02
    • 2016-06-07
    • 2015-12-28
    • 2015-09-17
    • 2016-02-12
    • 2017-03-09
    • 2015-12-19
    相关资源
    最近更新 更多