适用于多种服务的iOS 9 App Transport Security

时间:2016-02-05 23:22:59

标签: ios ios9 app-transport-security

我正在使用 parse.com layer.com 我的公司网址来了解条款/隐私权政策以及其他框架在cocoapods像google places api。

我被困了,因为我想使用正确的Apple Transport Settings,而我似乎无法弄清楚如何在info.plist中包含我需要的所有内容。 我不希望它在提交时被拒绝从应用商店

我已经完成了对堆栈溢出的研究,并通过传递它或给出一个域的示例。目前还不清楚我应该如何在xml中添加它。

2 个答案:

答案 0 :(得分:1)

如果您知道如何将一个域添加到例外字典中,那么您只需对所有其他字段执行相同的操作。这是一个例子:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>parse.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>                
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>layer.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>my-company.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

此外,NSAppTransportSecurity密钥的完整规范可以找到here

答案 1 :(得分:0)

不要担心拒绝事情

根据this guys answer

  

好消息是Apple接受我的应用程序设置了NSAllowsArbitraryLoads   是的。

因此,在您的情况下,最简单的方法是以这种方式允许所有http请求,如果您的应用程序具有内置Web浏览器,这绝对是您的选择

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

如果您只想允许特定的http请求,则可以在info.plist

中添加
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourserver.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>
上面的

代码表示允许yourserver.com及其子域名http连接