如何确定App Transport Security正在阻止哪个URL?

Mic*_*ine 39 cfnetwork ios ios9 app-transport-security

我正在将iOS应用程序升级到iOS 9,并且我有一些不安全的URL,我需要一些App Transport Security的例外.我已经添加了我所知道的两个,但现在有一些警告说:

App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全.可以通过应用程序的Info.plist文件配置临时例外.

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

Mic*_*ine 67

编辑注:@jessedc在下面的评论中指出Apple官方文档的链接如何执行此操作:https://developer.apple.com/library/content/qa/qa1887/_index.html

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

在我的application:didFinishLaunchingWithOptions:方法中,我添加了这一行

setenv("CFNETWORK_DIAGNOSTICS", "3", 1);
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序然后,在日志中我可以找到一个如下所示的条目:

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
Run Code Online (Sandbox Code Playgroud)

当我打开该文件时,我有大量的日志条目,关于网络上发生的一切.我kCFErrorDomainCFNetwork在该文件中搜索并获取失败网络请求的日志.我可以使用它来查看系统尝试访问的URL,然后可以将该URL添加到App Transport Security的例外中.

  • 如果没有别的哈哈:)创造力的冲击:) (4认同)
  • 通常首选通过Scheme设置环境变量.https://developer.apple.com/library/mac/recipes/xcode_help-scheme_editor/Articles/SchemeRun.html#//apple_ref/doc/uid/TP40010402-CH4-SW1 (2认同)