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

Man*_*bal 5 httprequest ios ios9 xcode7 app-transport-security

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

这是我正在使用的API

请帮帮我.提前致谢

Nil*_*tel 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>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)