Ios 我如何确定哪个URL被应用程序传输安全性阻止?

Ios 我如何确定哪个URL被应用程序传输安全性阻止?,ios,ios9,cfnetwork,app-transport-security,Ios,Ios9,Cfnetwork,App Transport Security,我正在将一个iOS应用程序升级到iOS 9,我有一些URL不安全,我需要一些应用程序传输安全例外。我已经添加了我所知道的两个,但现在出现了一些警告: 应用程序传输安全性已阻止明文HTTP(HTTP://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时异常 我需要知道哪些URL被阻止,以便我可以将它们添加到Info.plist,它们可能是图像或媒体文件。如何让系统记录决定不加载的URL?编者注:@jessedc在苹果官方文档链接下方的评论中指出了如何做到这一点: 好吧,

我正在将一个iOS应用程序升级到iOS 9,我有一些URL不安全,我需要一些应用程序传输安全例外。我已经添加了我所知道的两个,但现在出现了一些警告:

应用程序传输安全性已阻止明文HTTP(HTTP://)资源加载,因为它不安全。可以通过应用程序的Info.plist文件配置临时异常


我需要知道哪些URL被阻止,以便我可以将它们添加到Info.plist,它们可能是图像或媒体文件。如何让系统记录决定不加载的URL?

编者注:@jessedc在苹果官方文档链接下方的评论中指出了如何做到这一点:

好吧,我有一个我不喜欢的答案!我仍然非常想要一个更好的

在我的
应用程序: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添加到应用程序传输安全的例外中。

接受的答案是正确的,但如果您在Xamarin iOS上这样做,则需要使用

Environment.SetEnvironmentVariable("CFNETWORK_DIAGNOSTICS", "3", EnvironmentVariableTarget.Process);

另外,如果您正在查找日志文件,请使用Simulator manager之类的工具更轻松地找到正确的位置()。

如果没有其他内容,请激发创造力哈哈:)感谢您提供此解决方案。我希望苹果能让我们在每次发生这种情况时都设置一个断点。这个答案实际上是有文档记录的方法:我建议将源代码添加到应答器中。通常,我们更倾向于通过方案设置环境变量@这是因为你正在移动设备上调试。在这种情况下,日志也位于您的设备上。只需通过Xcode提取应用程序容器,并从
/AppData/Library/logs/CrashReporter
文件夹获取日志即可。在“CFNetwork Diagnostic Logging Q&A”的末尾有详细描述。PaulB它是否仅用于模拟器?