如何将NSAppTransportSecurity添加到我的info.plist文件中?

chr*_*s P 121 xcode objective-c ios ios9

https://developer.apple.com/videos/wwdc/2015/?id=711 @ 5:55

我似乎无法将此添加到我的info.plist.它没有价值.我正在运行XCode 7.0版beta(7A121l),并在iOS9上进行测试.

因为我无法明确声明视频中所见的URL,所以我不断获得"App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全.临时例外可以通过你的应用程序配置Info.plist文件"错误.

但是,我似乎无法配置它.有任何想法吗?

Ash*_*ish 123

尝试用这个---在Xcode-beta 4 7.0中为我工作

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

还有一个选项,如果你想禁用ATS,你可以使用它:

<key>NSAppTransportSecurity</key>  
 <dict>  
      <key>NSAllowsArbitraryLoads</key><true/>  
 </dict>
Run Code Online (Sandbox Code Playgroud)

但是根本不建议这样做.服务器应具有SSL证书,以便不存在隐私泄漏.

  • 我可以确认这适用于Beta 4. (3认同)

小智 88

您必须在info.plist文件中的NSAppTransportSecurity字典中仅将NSAllowsArbitraryLoads键添加到YES.

例如,

 <key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 这是一种解决方法。真正的问题是@Ashish 的回答中的死亡 (2认同)

Bob*_*bby 45

那对我来说不起作用,但这就是诀窍:

<key>NSAppTransportSecurity</key>  
     <dict>  
          <key>NSAllowsArbitraryLoads</key><true/>  
     </dict>  
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的其他新手:请确保将其放在正确的位置(在最后,用现有的“&lt;/dict&gt;”和“&lt;/plist&gt;”标签括起来: (3认同)

小智 21

只是为了澄清......你应该总是使用httpS

但你可以绕过它添加例外:

在此输入图像描述


小智 9

Xcode 8.2,iOS 10

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)