Swift HTTP加载失败(kCFStreamErrorDomainSSL,-9806(IOS9)

Swift HTTP加载失败(kCFStreamErrorDomainSSL,-9806(IOS9),swift,info.plist,xcode7,ios9,Swift,Info.plist,Xcode7,Ios9,在模拟器上运行应用程序时,我在iOS 9上获取NSURLSession/NSURLConnection HTTP加载失败。 下面是我的info.plist文件的外观 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSInclude

在模拟器上运行应用程序时,我在iOS 9上获取NSURLSession/NSURLConnection HTTP加载失败。 下面是我的info.plist文件的外观

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSIncludesSubdomains</key>
        <true/>
        <!--Include to allow insecure HTTP requests-->
        <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <!--Include to specify minimum TLS version-->
        <key>NSTemporaryExceptionMinimumTLSVersion</key>
        <string>TLSv1.1</string>
    </dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads
n包括多个域
NSTemporary ExceptionalLowsInSecureHttpLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1
即使在输入这些键值之后,Xcode控制台上也会显示相同的错误。请协助

这是
info.plist


非常感谢!

您需要定义要应用这些规则的URL。 您可以在苹果的文档页面上找到正确的声明:

因此,基本上你的Info.plist应该是这样的,包括域

注意:为了提高透明度,我还将
NSAllowsArbitraryLoads
的默认值重新声明为false

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads
NSExceptionDomains
yourdomain.com
n包括多个域
NSAllowsArbitraryLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1
NSTemporary ExceptionalLowsInSecureHttpLoads
致以最良好的祝愿

如果您不关心所有这些ssl混乱(我不建议这样做),只想调试您的UI,您也可以暂时使用非默认的App TransportSecurity,并允许任何操作:

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

我不确定,苹果是否会在AppStore审查中通过;-)

您需要定义要应用这些规则的URL。 您可以在苹果的文档页面上找到正确的声明:

因此,基本上你的Info.plist应该是这样的,包括域

注意:为了提高透明度,我还将
NSAllowsArbitraryLoads
的默认值重新声明为false

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads
NSExceptionDomains
yourdomain.com
n包括多个域
NSAllowsArbitraryLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1
NSTemporary ExceptionalLowsInSecureHttpLoads
致以最良好的祝愿

如果您不关心所有这些ssl混乱(我不建议这样做),只想调试您的UI,您也可以暂时使用非默认的App TransportSecurity,并允许任何操作:

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

我不确定苹果是否会在AppStore审查中通过这一点;-)

是的,它通过了。有许多应用程序在构建时并不知道链接到底指向哪些域。有充分的理由在RSS阅读器等中启用此功能。我已禁用所有的ATS,但请求仍然失败。是的,它确实通过了。有许多应用程序在构建时并不知道链接到底指向哪些域。有充分的理由在RSS阅读器等中启用此功能。我已禁用所有的ATS,但请求仍然失败