【问题标题】:How can I figure out which URL is being blocked by App Transport Security?如何确定应用程序传输安全阻止了哪个 URL?
【发布时间】:2015-09-20 12:21:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios ios9 cfnetwork app-transport-security


    【解决方案1】:

    编者注:@jessedc 在下面的 cmets 中指出了苹果官方文档的链接: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 添加到应用程序传输安全的例外中。

    【讨论】:

    • 尽情发挥创造力吧哈哈:)
    • 感谢您提供此解决方案。我希望 Apple 可以通过某种方式让我们在每次发生这种情况时设置一个断点。
    • 这个答案实际上是记录在案的方法:developer.apple.com/library/mac/qa/qa1887/_index.html我建议将源添加到答案中
    • 一般首选通过Scheme设置环境变量。 developer.apple.com/library/mac/recipes/…
    • @chiliNUT 这是因为您正在移动设备上进行调试。在这种情况下,日志也位于您的设备上。只需通过 Xcode 提取您的应用程序容器并从 /AppData/Library/Logs/CrashReporter 文件夹中获取您的日志。在“CFNetwork 诊断日志问答”末尾有详细描述。
    【解决方案2】:

    接受的答案是正确的,但如果您在 Xamarin iOS 上执行此操作,则需要使用;

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

    此外,如果您正在查找日志文件,请使用 Simulator manager 之类的工具来更轻松地找到正确的位置 (https://github.com/tue-savvy/SimulatorManager)。

    【讨论】:

    • PaulB 只用于模拟器吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2021-05-30
    • 2017-05-03
    相关资源
    最近更新 更多