5

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

这是我正在使用的 API

请帮帮我。提前致谢

4

2 回答 2

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>
于 2015-06-18T05:24:03.953 回答
4

你可以按照这个简单的步骤..

在 info.plist 中添加以下内容 在此处输入图像描述

NSAppTransportSecurity
NSAllowsArbitraryLoads
这将对您有所帮助。

于 2015-10-13T06:47:09.563 回答