首页 文章

App Transport Security问题iOS9

提问于
浏览
0

尝试在iOS9模拟器上运行应用程序后,我遇到了以下令人讨厌的警告

无法加载资源,因为App Transport Security策略要求使用安全连接 .

谷歌搜索解决方案后,我发现了一个 . 打开 project's .plist 文件作为源代码并添加以下行:

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

清理了构建,运行 - 并看到类似的警告 .
之后,我尝试了其他各种方法How do I load an HTTP URL with App Transport Security enabled in iOS 9?

没有用 .

我尝试允许所有域名,即使这是一种拒绝风险的方法 .

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

它也没用 . 无论我如何编辑 plist 文件,似乎Xcode 7.0.1都会覆盖此配置 .

期待有关该主题的任何建议 .

1 回答

  • 1

    您正在调用的域名具有哪个安全版层?

    Apple默认设置为1.2 TLS . 您的API可能是1.1或1.0安全性 . 尝试设置 NSExceptionMinimumTLSVersion . 只需在info.plist中编辑您提到域名的字典 . 以下是TLS版本1.0安全性的示例 .

    <key>mydomain.com</key>
            <dict>
                <key>NSExceptionMinimumTLSVersion</key>
                <string>TLSv1.0</string>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
    

相关问题