美文网首页
iOS9 适配

iOS9 适配

作者: ekg | 来源:发表于2016-01-12 10:17 被阅读1346次

    一、先上图1:

    白名单问题
    1. 这是ios9白名单问题:
      -canOpenUrl: failed for URL: " " -error:This app is not allowed to query for scheme xxx

    起因于 ios9 对传输安全的支持

    在新一代的iOS系统中,默认需要为每次网络传输建立SSL。解决这个问题有两种方法:

    解决方法:
    A.建立白名单(根据需要删减)并添加到你的app的plsit中

    <key>LSApplicationQueriesSchemes</key>
    <array>

    <string>wechat</string>
    <string>weixin</string>

    <string>sinaweibohd</string>
    <string>sinaweibo</string>
    <string>sinaweibosso</string>
    <string>weibosdk</string>
    <string>weibosdk2.5</string>

    <string>mqqapi</string>
    <string>mqq</string>
    <string>mqqOpensdkSSoLogin</string> <string>mqqconnect</string>
    <string>mqqopensdkdataline</string> <string>mqqopensdkgrouptribeshare</string> <string>mqqopensdkfriend</string>
    <string>mqqopensdkapi</string> <string>mqqopensdkapiV2</string> <string>mqqopensdkapiV3</string>
    <string>mqzoneopensdk</string>
    <string>wtloginmqq</string>
    <string>wtloginmqq2</string>
    <string>mqqwpa</string>
    <string>mqzone</string>
    <string>mqzonev2</string>
    <string>mqzoneshare</string>
    <string>wtloginqzone</string>
    <string>mqzonewx</string>
    <string>mqzoneopensdkapiV2</string> <string>mqzoneopensdkapi19</string> <string>mqzoneopensdkapi</string>
    <string>mqzoneopensdk</string>

    <string>alipay</string>
    <string>alipayshare</string>
    </array>

    或者 直接在info中配置(其他白名单名称参考 👆 )

    添加白名单

    B.强制将NSAllowsArbitraryLoads属性设置为YES,并添加到你应用的plist中

    <key>NSAppTransportSecurity</key>
    <dict>
    <key>NSAllowsArbitraryLoads</key>
    </true>
    </dict>

    俗话说的好,没有调查就没有发言权,测试后发现 这份来自于微博官方文档的解决方案并不对,准确的来说是描述不对。B 的解决是https连接的问题,是访问网络的问题 ,适配ios9 第一步要做到事情,如果你们的后台服务器不支持https,那你只好使用 👆 的解决方案了。附上错误码:
    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

    或者 在 info里添加:


    设置NSAppTransportSecurity

    二、上图2:

    bitcode问题
    1. 这是ios9 Bitcode问题:
      xxx does not contain bitcode. You must rebuild it with bit code enabled

    起因于 Xcode7默认开启Bitcode

    解决方法:

    方法一:使用bitcode,

    虽然我也不会用,但我知道许多第三方包不支持bitcode,所以对于引用第三方文件的开发者来说使用它并不简单(可能是因为我菜,别打脸)。

    方法二:关闭Bitcode,方法见下图

    简单粗暴,不过我喜欢

    关闭bitcode

    发现了一篇好的文章,不光介绍了适配ios9的方法,还把为什么会出现这种问题简单介绍了一下,自问暂时不可能比他整理的更好,所以直接奉上 连接了。

    相关文章

      网友评论

          本文标题:iOS9 适配

          本文链接:https://www.haomeiwen.com/subject/gvxckttx.html