【iOS开发】-canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx"

Collection/Bookmark/Share for width under 768px

控制台输出

如图是在我启动一个 Xcode 7 + iOS 9 的 App 之后,控制台的输出。

这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是【为了强制增强数据访问安全, iOS9 默认会把所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会让所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求统一采用 TLS 1.2(SSL 3.1) 协议。】

下面说解决方案:

①如果你的输出信息是-canOpenURL: failed for URL: "kindle://home" - error: "This app is not allowed to query for scheme kindle"

set Bitcode to NO

去你的 target 里面的 Build Settings 下的 Enable Bitcode,把它设置成 NO,这不一定会阻挡你的控制台继续输出这条信息,但是可以保证你的 App 正常运行。

②如果你的输出信息是 xxxx - error: "This app is not allowed to query for scheme xxxx"

(在这里因为我的 App 集成了分享到QQ、微信、微博的功能,xxxx部分我看到了 mqq、wechat、sinaweibosso 等多条信息)

Info.plist

去 Info.plist 里面建立一个叫 LSApplicationQueriesSchemes 的 Array,把你在xxxx部分看到的词汇一个一个填进去,直至控制台没有任何相关输出即可。

③关于其他通过 WebView 访问 http 网址引发的控制台报错信息

Info.plist 中设置 ATS

<key>NSAppTransportSecurity</key>

<dict>

<!--Include to allow all connections (DANGER)-->

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

如之前所说,Apple 希望我们访问相对安全的 HTTPS,所以在你需要访问 HTTP 时,

虽 Apple 不建议,但可通过在 Info.plist 中声明如上图所示的内容,倒退回不安全的网络请求,这样依然能让 App 访问指定 HTTP,甚至任意的 HTTP。

转载于:https://www.cnblogs.com/zmloveworld/p/5218161.html

iOS9 白名单问题 -canOpenURL: failed for URL: xx - error:This app is not allowed to query for scheme x...相关推荐

  1. iOS9.0 canOpenURL: failed for URL: xx - error:This app is not allowed to query for scheme xx

    控制台输出 如图是在我启动一个 Xcode 7 + iOS 9 的 App 之后,控制台的输出. 这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是[为了强制增强数据访问安全, iO ...

  2. canOpenURL: failed for URL: xx - error:This app is not allowed to query for scheme xx

    1.找到你项目的Info.plist 2.Info.plist 里面建立一个叫 LSApplicationQueriesSchemes 的 Array,把你在xxxx部分看到的词汇一个一个填进去,直至 ...

  3. iOS开发-canOpenURL: failed for URL: mqq:// - error: This app is not allowed to query for scheme mqq

    使用ShareSDK做分享时,弹出错误如下: -canOpenURL: failed for URL: "mqq://" - error: "This app is no ...

  4. 史上最全canOpenURL: failed问题解决办法

    史上最全canOpenURL: failed问题解决办法 由于苹果在IOS9.0开始规定在App中使用Https协议与服务器进行数据交互,导致很多原本正常的功能,莫名的就崩掉了.查看控制台 就会看到各 ...

  5. Xcode 史上最全canOpenURL: failed问题解决办法

    由于苹果在IOS9.0开始规定在App中使用Https协议与服务器进行数据交互,导致很多原本正常的功能,莫名的就崩掉了.查看控制台 就会看到各种错误提示,例如:-canOpenURL: failed ...

  6. iOS开发分享之“白名单”

    本文转自:http://www.2cto.com/kf/201602/489546.html WWDC 2015 Session 703: "Privacy and Your App ( 时 ...

  7. 添加url白名单_赏金技巧 | URL跳转Bypass案例

    前言 在第一军团这么久了,参加了几次"SRC赏金活动",挖掘了一个比较有意思的漏洞,这里来说明下. 开始 发现一个URL跳转点:http://xxx.com/?src=http:/ ...

  8. Node.js设置CORS跨域请求中多域名白名单的方法

    允许跨域请求,主要就是配置Response响应头中的 Access-Control-Allow-Origin 属性为你允许该接口访问的域名. 最常见的设置是: res.header('Access-C ...

  9. android 11.0 12.0app应用安装白名单

    1.概述 在11.0 12.0定制化开发中,客户需求要实现应用安装白名单功能,在白名单之中的应用可以安装,其他的app不准安装,实现一个 控制app安装的功能,这需要从app安装流程入手就可以实现功能 ...

最新文章

  1. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
  2. JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前...
  3. 拥有梦想只是一种智力,实现梦想才是一种能力
  4. 尚硅谷李老师笔记3DQL
  5. 修改maven打包名字
  6. 阳振坤:电动汽车与分布式数据库的共同命运
  7. JHipster简介
  8. 注册使用GAC【转载】
  9. html5移动端海报制作,H5制作利器,教你分分钟制作高/大/上H5海报!
  10. 微信公共号开发简单入门
  11. NTFS文件系统下文件恢复
  12. docker image 重命名
  13. 用计算机弹无羁的数字,无羁钢琴谱数字双手波尔卡教
  14. c语言中static 变量
  15. 计算机科学 在职双证,计算机在职研究生有双证吗
  16. Springboot 删除指定文件夹或文件(Java删除指定文件夹或文件)
  17. python实现长截图_用python实现对元素的长截图
  18. python a股行情_用Python,tushare做一个A股每日收盘行情监测分析(含源代码)
  19. 计算机打字工作内容,计算机基础知识打字入门
  20. 10个动画亮度过渡PR预设

热门文章

  1. 单例模式(singleton)解析例子
  2. oct玻璃体后脱离图像
  3. flink sql是否支持emit策略
  4. flink社区提问没有人回答是怎么回事?
  5. Mongodb和redis书籍调研
  6. xfce4面板消失了解决方案+xfce4的面板保存设置以及读取
  7. 这是一份通俗易懂的知识图谱技术与应用指南(转)
  8. 错误代码#1045 Access denied for user 'root'@'localhost' (using password:YES)
  9. 根据文法画出语法树_编译工程5:语法分析(3)
  10. java基础知识陷阱