【问题标题】:-canOpenURL: failed for URL: "itms-books://" - error: "This app is not allowed to query for scheme itms-books"-canOpenURL:URL 失败:“itms-books://” - 错误:“此应用不允许查询方案 itms-books”
【发布时间】:2015-12-20 06:38:48
【问题描述】:

我刚启动 xcode 7 稳定版。在我当前的项目中,我正在从 web 服务下载图像。在 xcode 6.4 中工作正常。现在它没有显示任何图像并在日志中显示警告

-canOpenURL:URL 失败:“itms-books://” - 错误:“此应用不允许查询方案 itms-books”

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

【问题讨论】:

标签: ios9 xcode7


【解决方案1】:

这是 Apple 已在 iOS 9 中构建的任何应用程序上实施的一项新的强制安全措施。

目前唯一的解决方案是在 info.plist 文件中添加一个带有密钥 LSApplicationQueriesSchemes 的条目,并在此数组中添加“itms-books”和您的应用将链接到的任何其他 url 方案。

苹果此举的主要解释是,一些应用程序曾利用 canOpenURL 的功能:扫描您手机中安装的应用程序的方法,以选择性广告或其他“不那么仁慈”的动机来定位您。

请记住,您可以注册的应用数量上限为 50。

【讨论】:

  • 对于带有 iOS 9 的 Facebook SDK 4,这是解决方案,只需复制错误消息中的参考,因为它在上图中 (fbapi201...),谢谢兄弟
  • 在 WWDC 2015 上查看 Session number 703 的第 8-11 分钟。阅读 this blog post
【解决方案2】:

您可能还需要向 plist 添加另一个名为 LSApplicationQueriesSchemes 的键(类型数组) 并将“itms-books”方案作为字符串项添加到其中,以允许 canOpenURL 对其进行测试。

【讨论】:

    【解决方案3】:

    我发现我的问题我被添加到 info.plist 文件中。

    添加字典 NSAppTransportSecurity -> 在项目的 info.plist 文件中添加新的布尔键名称 NSAllowsArbitraryLoads。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      相关资源
      最近更新 更多