Xcode 7.1 beta 2-禁用ATS

Heyy,我花了我最后一天左右的时间,试图阻止ATS,我知道它也被认为是不好的,但我目前只在内部工作。 我已经尝试了很多build议,无济于事,最新尝试下面的info.plist。 我失去了做什么?

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>1</string> <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> </dict> </plist> 

debugging控制台eror打印

错误=可选(错误域= NSURLErrorDomain代码= -1022“资源无法加载,因为应用程序传输安全策略需要使用安全连接。”UserInfo = {NSUnderlyingError = 0x7f9670e85620 {错误域= kCFErrorDomainCFNetwork代码= -1022“ (null)“},NSErrorFailingURLStringKey = http://localhost/sfc/manualorder.php,NSErrorFailingURLKey = http://localhost/sfc/manualorder.php,NSLocalizedDescription =资源无法加载,因为App Transport Security策略需要使用安全连接。})

如果您想禁用ATS,您可以将其添加到Info.plist中

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

完成应用程序的工作后,您可以重新启用该应用程序,并细化您的域的白名单。

像这样,第一个包含所有子域,第二个不包含:

 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>maindomain.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> <key>other.domain.net</key> <dict> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict> 

如果您在模拟器上进行testing,则可能需要添加一个步骤,即清理项目并重置模拟器的内容和设置,然后重新构build并运行。