如何在我的info.plist文件中禁用NSAppTransportSecurity?

时间:2015-07-16 23:39:44

标签: swift2

如何在我的info.plist文件中禁用NSAppTransportSecurity?

这是我的要求

func request(){     
            let url = NSURL(string: "https://www.widadclub.tk/feed/")
            let feedParser = MWFeedParser(feedURL: url)
            feedParser.delegate = self
            feedParser.parse()        
    }

2 个答案:

答案 0 :(得分:2)

要完全禁用所有域的NSAppTransportSecurity,请使用文本编辑器打开plist文件并添加:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <!-- .......................... -->
        <!-- Other keys already present -->
        <!-- .......................... -->

        <key>NSAppTransportSecurity</key>
        <dict>

           <key>NSAllowsArbitraryLoads</key>
           <true/>

        </dict>

    </dict>
    </plist>

要向域列表添加特定的例外,请添加以下内容:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- .......................... -->
    <!-- Other keys already present -->
    <!-- .......................... -->

    <key>NSAppTransportSecurity</key>
    <dict>

        <key>NSExceptionDomains</key>
        <dict> 

            <key>widadclub.tk</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>

        </dict>
    </dict>

</dict>
</plist>

NSIncludesSubdomains不是必需的,但允许访问子域名,如wiki.widadclub.tk,blog.widadclub.tk等。

有关详细教程,请查看this blog post

答案 1 :(得分:1)

您可以向Info.plist文件添加例外。这是最终字典应该是什么样子。注意:我添加了所有可用的例外情况,挑选并选择适合您的任何内容。例如,如果您不需要最小TLS版本1.1,请不要包含该密钥。在当前的测试版中,密钥在info.plist中没有自动完成,因此我将字符串添加到底部以方便复制粘贴。 Info.plist file

NSAppTransportSecurity
NSExceptionDomains
NSIncludesSubdomains
NSTemporaryExceptionAllowsInsecureHTTPLoads   
NSTemporaryExceptionMinimumTLSVersion
NSTemporaryExceptionRequiresForwardSecrecy