什么样缓慢解决

2019-11-26 15:59 来源:未知

  iOS9 开始苹果将HTTP全改为HTTPS了,所以出现网络请求失败问题,解决办法:

问:有些项目用xcode7打开运行,打包安装到iOS9设备上程序会闪退。如果用xcode7以下编译,然后打包到iOS9的设备上就是正常的。这是为什么,关键是,怎么解决?

1、改回HTTP:

答:iOS9发布之后,有些app在新的系统下会经常出现闪退的情况,而官方也给了许多的适配与改变。以使用户体验更好。所以做为开发者怎样为自己维护的App做适配呢?最快解决的方法肯定是使用Xcode7以下的编译打包。(啊左就是因为需求一直在催,所以果断用旧版Xcode5编译...555)

    在info.plist文件中添加一个Key:NSAppTransportSecurity(字典类型),然后给它添加一个Key:NSAllowsArbitraryLoads(Boolean型),属性值设为YES.如下图:
      图片 1
2、添加白名单

当然,如果一定要用Xcode7的话也可以解决,需要解决的步骤如下:

   (这里主要针对运行程序打印‘-canOpenURL: failed for URL: "XXX" - error: "This app is not allowed to query for scheme XXX"’问题)(以友盟为例吧)

关于iOS9网络适配(HTTP 转 HTTPS):为了强制增强数据访问安全, iOS9 默认会把 所有的http请求都改为 HTTPS 请求。(HTTPS = HTTP+SSL/TLS+TCP)解决这个变化带来的影响,有2个方案:方案a:立即让公司的服务端升级使用TLS 1.2,以解析相关数据;方案b:如果服务器无法升级改变,虽Apple不建议,但可通过在 Info.plist 中声明,倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http。本应用的根目录下的“info.plist”的文件需加下面的键值;简单粗暴地信任所有http服务器:

    将info.plist文件以Source Code方式打开,在里面添加类似下面的代码(一般官网上可找到处理办法的,)

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

<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>
    </array>

或者不用代码,而在“info.plist”文件的属性列表上直接添加:图片 2

 3、之后运行程序,打印信息会变为‘-canOpenURL: failed for URL: "XXX" - error: "null"’,此打印貌似无法消除(我没有找到方法解决,不过真机时不会出现次打印)

bitcode,一种被编译程序的一种中间形式的代码。以后在Watch应用中必须包含Bitcode,iOS不强制,但Xcode7默认会开启Bitcode:

TAG标签:
版权声明:本文由金沙澳门官网4166发布于世界史,转载请注明出处:什么样缓慢解决