Xcode 7 / iOS 9中的Api调用错误(如何在plist中设置App Transport Security)

时间:2015-06-17 10:46:45

标签: ios httprequest ios9 xcode7 app-transport-security

我正在使用xcode 7 beta版。 现在,我正在使用API​​。如果,我在Xcode 6.3中使用API​​它工作正常,但是当我在xcode 7中使用相同的API时出现错误消息无法解析。

here is the API i am using

请帮帮我。在此先感谢

2 个答案:

答案 0 :(得分:9)

在iOS9中,Apple添加了一项名为App Transport Security(ATS)的新功能。

ATS在网络呼叫期间实施最佳做法,包括使用HTTPS。

Apple预发布文档:

  

ATS防止意外泄露,提供安全的默认行为,   并且很容易采用。你应该尽快采用ATS,   无论您是创建新应用还是更新   现有的。

     

如果您正在开发新应用,则应该专门使用HTTPS。如果   你有一个现有的应用程序,你应该尽可能多地使用HTTPS   现在,并创建一个计划,以迁移您的应用程序的其余部分   尽快。

在info.plist&中添加以下密钥然后看看。

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

即使你可以添加特定的例外,

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>testdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <false/>
            <key>NSExceptionAllowInsecureHTTPSLoads</key>
            <false/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSThirdPartyExceptionAllowInsecureHTTPSLoads</key>
            <false/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <true/>
            <key>NSThirdPartyExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSRequiresCertificateTransparency</key>
            <false/>
        </dict>

        ...

    </dict>
</dict>

答案 1 :(得分:4)

您可以按照这个简单的步骤进行操作..

在info.plist中添加以下内容 enter image description here

NSAppTransportSecurity
NSAllowsArbitraryLoads
 这对你有帮助。