iOS9适配常见问题

1 篇文章 0 订阅
0 篇文章 0 订阅

1.http传输安全

iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求

 你可以在Info.plist配置中改用下面的XML源码:

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

如果使用上面的方法禁用ATS,但还是无法联网。仍然提示要使用https

遇到此问题,基本出现一个project多Target,所以要注意你的Target所属的Info.plist,本人就犯过这低级错误。

如下图:


2.应用跳转(sso等)

如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转AppURL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。

同样在info.plist增加:


<key>LSApplicationQueriesSchemes</key>

<array>

    <!-- 微信 URL Scheme白名单-->

    <string>wechat</string>

    <string>weixin</string>


    <!-- 新浪微博 URL Scheme白名单-->

    <string>sinaweibohd</string>

    <string>sinaweibo</string>

    <string>sinaweibosso</string>

    <string>weibosdk</string>

    <string>weibosdk2.5</string>


    <!-- QQQzone URL Scheme白名单-->

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


    <!-- 人人 URL Scheme白名单-->

    <string>renrenios</string>

    <string>renrenapi</string>

    <string>renren</string>

    <string>renreniphone</string>


    <!-- 易信 URL Scheme白名单-->

    <string>yixin</string>


    <!-- instagram URL Scheme白名单-->

    <string>instagram</string>


    <!-- whatsapp URL Scheme白名单-->

    <string>whatsapp</string>


    <!-- line URL Scheme白名单-->

    <string>line</string>


    <!-- Facebook URL Scheme白名单-->

    <string>fbapi</string>

    <string>fb-messenger-api</string>

    <string>fbauth2</string>

    <string>fbshareextension</string>



</array>


3.第三方网络框架受影响 比如 AFNetworking

现在的 AFNetworking AFHTTPRequestOperationManager实现是使用的 NSURLConnection

AFNetworking 也有更新计划,移除 NSURLConnection相关API,迁移到 AFHTTPSessionManager,但还未执行,详情见:https://github.com/AFNetworking/AFNetworking/issues/2806

4.Bitcode

Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过。看了下问题,报的是以下错误:


ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64


得到的信息是引入的一个第三方库不包含bitcode

对于iOSbitcode是可选的;对于watchOSbitcode是必须的;而Mac OS是不支持bitcode

所以,如果我们的工程需要支持bitcode,则必要要求所有引入的第三方库都支持bitcode

如果只是iOS平台,我们可以在”Build Settings”->”Enable Bitcode”选项中看到这个设置,然后进行设置成NO


5.iOS9 下使用 Masonry会引起崩溃的一种情况

我们在使用时候一直将 leading left 划为等号,这样做在 iOS8(及以前)上是正常的,但在 iOS9上这样的观念可能会引起崩溃,比如:

1

make.left.equalTo(self.mas_leading).offset(15);

应该为:

1

make.left.equalTo(self.mas_left).offset(15);

同理 mas_training 也需要改为right

5.XCode7模拟器报错

Unable to open liblaunch_sim.dylib Try reinstalling Xcode or the simulator runtime.

解决办法解决办法

一、找到目标文件

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/system/host/liblaunch_sim.dylib



二、拷贝到目标地址一和目标地址二。

 

目标地址一

/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS8.1.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/host/liblaunch_sim.dylib

目标地址二

/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS8.2.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/host/liblaunch_sim.dylib




图中红色部分是原文件名字进行了修改,为了以后备份使用,liblaunch_sim.dylib拷贝过来的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值