如何在我的info.plist文件中禁用NSAppTransportSecurity?
这是我的要求
func request(){
let url = NSURL(string: "https://www.widadclub.tk/feed/")
let feedParser = MWFeedParser(feedURL: url)
feedParser.delegate = self
feedParser.parse()
}
答案 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中没有自动完成,因此我将字符串添加到底部以方便复制粘贴。
NSAppTransportSecurity
NSExceptionDomains
NSIncludesSubdomains
NSTemporaryExceptionAllowsInsecureHTTPLoads
NSTemporaryExceptionMinimumTLSVersion
NSTemporaryExceptionRequiresForwardSecrecy