博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【iOS开发】canOpenURL: failed for URL
阅读量:6872 次
发布时间:2019-06-26

本文共 1045 字,大约阅读时间需要 3 分钟。

控制台输出

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

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

下面说解决方案:

①如果你的输出信息是-canOpenURL: failed for URL: "" - 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
NSAppTransportSecurity
NSAllowsArbitraryLoads

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

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

转载地址:http://ywvfl.baihongyu.com/

你可能感兴趣的文章
Servlet、Filter和Listener
查看>>
高中数学运算能力训练题【基础中阶高阶辅导】
查看>>
插件就是生产力——那些不能错过的XCode插件们
查看>>
Python打造一个在线G代码生成器
查看>>
ionic开发-怪癖001(http请求 android下无法正常运行)
查看>>
Java实现的基于socket的一次通信
查看>>
Form保存顺序
查看>>
[python]错误检测及异常处理try-except
查看>>
SharePoint 2010 "客户端不支持使用windows资源管理器打开此列表" 解决方法
查看>>
ZOJ-2913 Bus Pass---BFS进阶版
查看>>
PHP 依赖管理神器 Composer 基本使用
查看>>
sass进阶篇
查看>>
为项目配置logback日志
查看>>
另外一种C#多选下拉框
查看>>
【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3...
查看>>
“李开复”危机
查看>>
libvirt 网络
查看>>
每日英语:Poor Chinese Schools Tell Students: Bring Your Own Desks
查看>>
HDU 4268
查看>>
IE9中FCKEditor弹出层不好使的解决方法
查看>>