我正在将一个iOS应用程序升级到iOS 9,但有些URL不是安全的,我需要在应用传输安全性中添加一些例外。我已经添加了我知道的两个,但现在出现了一些警告:
由于不安全,应用传输安全性阻止了明文HTTP(http://)资源加载。可以通过您的应用程序的Info.plist文件配置临时例外。
我需要知道哪些URL被阻止,以便将它们添加到Info.plist中,它们可能是图片或媒体文件。如何让系统记录它决定不加载的URL?
我正在将一个iOS应用程序升级到iOS 9,但有些URL不是安全的,我需要在应用传输安全性中添加一些例外。我已经添加了我知道的两个,但现在出现了一些警告:
由于不安全,应用传输安全性阻止了明文HTTP(http://)资源加载。可以通过您的应用程序的Info.plist文件配置临时例外。
我需要知道哪些URL被阻止,以便将它们添加到Info.plist中,它们可能是图片或媒体文件。如何让系统记录它决定不加载的URL?
编辑说明: 在下面的评论中,@jessedc指出了如何执行此操作的官方Apple文档链接: https://developer.apple.com/library/content/qa/qa1887/_index.html
好吧,我有一个答案,但我不喜欢它! 我仍然非常想要一个更好的答案。
在我的application:didFinishLaunchingWithOptions:
方法中,我添加了以下行:
setenv("CFNETWORK_DIAGNOSTICS", "3", 1);
当我运行应用程序时,在日志中我可以找到一个看起来像这样的条目:2015-07-02 15:27:56.152 MyApp[45041:9125662] CFNetwork diagnostics log file
created at: /Users/micah.hainline/Library/Developer/CoreSimulator/Devices/
11BCA581-5F5F-494D-932A-2ECFCA33EA93/data/Containers/Data/Application/
9ACC6941-8039-4B86-B5E8-A6C66E2AD520/Library/Logs/CrashReporter/CFNetwork_com
.myapp.MyApp_45041.nwlrb.log
当我打开该文件时,我会看到大量关于网络上发生的所有事情的日志条目。我在该文件中搜索kCFErrorDomainCFNetwork
并获取失败的网络请求的日志。我可以使用此信息查看系统尝试访问的URL,然后可以将该URL添加到App Transport Security的例外中。
接受的答案是正确的,但如果你在Xamarin iOS上进行此操作,你需要使用以下内容:
Environment.SetEnvironmentVariable("CFNETWORK_DIAGNOSTICS", "3", EnvironmentVariableTarget.Process);
/private/var/mobile/...长路径名...
,但实际上mobile
目录并不存在。 - chiliNUT