我在info.plist中的NSAppTransportSecurity设置并不适用于所有已定义的domanins和子域

时间:2015-11-25 14:26:05

标签: objective-c xcode swift xcode7 ios9.1

在属性NSAppTransportSecurity下的info.plist中,我添加了一组与我的应用程序通信的域。但由于某些原因,我的设置仅适用于某些已添加的域,而不是所有域,但我不知道为什么。对任何想法我都会非常有帮助。提前谢谢。

例如,现在它适用于域googleapis.com但不适用于imeteo.sk,imeteo.cz或任何子域(http://m.imeteo.cz

这是我的info.plist的片段

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowExceptionDomains</key>
    <dict>
        <key>imeteo.cz</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
        <key>imeteo.sk</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
        <key>googleapis.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

尝试在webview中加载某些域或子域后,我得到了这个:

  

App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时例外。

1 个答案:

答案 0 :(得分:0)

尝试使用 NSTemporaryExceptionAllowsInsecureHTTPLoads NSTemporaryExceptionMinimumTLSVersion 替换 NSExceptionAllowsInsecureHTTPLoads NSExceptionMinimumTLSVersion ,如下所述:

http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/

此外,我使用 NSExceptionDomains 而不是 NSAllowExceptionDomains