美文网首页问题适配
iOS9 快速适配Tips

iOS9 快速适配Tips

作者: 馒头MT | 来源:发表于2016-01-08 17:56 被阅读143次

Xcode7正式版发布之后,我们团队第一时间进行了升级体验,在确定没有重大bug之后,全体升级Xcode7,世界如此美好~~~
但是升级之后还是遇到一些问题,把踩的坑小记一下.

1.Swift2.0语法更新之后编译不通过.

当初为了学习中,我们项目中某个模块使用swift实现,现在想来这绝逼是最2的事情了,Xcode6以来,每次更新都随着语法的变动,每次看到编译后一堆红色警告都是心烦意乱.对应解决办法不难,修改代码即可.

2. Bitcode导致编译不通过问题

在修改完swift代码之后,编辑报错如下:

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

Xcode7之后,默认开启Bitcode,但是引用的第三方库不支持啊,AppThinning始终是个美好的愿景啊,暂时可以通过修改Build settings - Build Options - Enable Bitcode 改为NO来解决.

3.Http request fail

iOS9之后默认只支持更安全的HTTPS请求,我们公司暂时不支持HTTPS,我们可以来到info.plist里面添加一项来搞定它.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
4.新字体导致UI问题

新苹方字体个人很喜欢,小字体时观看对眼睛更友好,但是字体间距好像比以前稍微宽了一丢丢,导致UI出现了一丢丢问题,稍微注意一下Label宽度即可.

5.键盘闪现bug

应用内无缘无故弹出数字键盘,不知道哪里出问题了,stackoverflow查询之后发现是UIAlertview的问题,需要改为iOS8添加的UIAlertController,(iOS8新特性---更优雅的弹窗),但是由于应用还要支持iOS7,这个问题不了了之,暂且记下.

6. canOpenUrl机制改变导致无法跳转应用

iOS9之后处于对用户隐私的考虑,对使用URLScheme跳转做了限制,只需要在info.plist里面LSApplicationQueriesSchemes字段下添加相应的UrlScheme即可正常跳转,白名单上限是50个.
常见白名单

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

    <!-- QQ、Qzone 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>alipay</string>
    <string>alipayshare</string>

</array>

PS:哪位仁兄应用里面添加了50个url scheme让我来膜拜一下

7.约束leading与training导致的崩溃

iOS9以前leadingtraining基本可以理解为leftright,但是iOS9之后不是了,貌似说增加了某些国家文字支持,是从右往左导致leadingtrainingleft跟right相反了(求证实),我在使用Masonry添加约束的时候已经全用leftright替换.

8.preferredLanguages导致应用默认为英文的bug

哈哈哈哈更新iOS9之后微信跟微博第一时间中枪了.....
嗯嗯,严肃.
iOS9正式版之后[NSLocale preferredLanguages]返回的当前语言后面加了所在国家后缀,比如中国地zh-Hans变成了zh-Hans-CN,这时候使用返回值的前缀做国际化适配即可.
例如if ([currentLanguage hasPrefix:@"zh-Hans"])

差不多就酱,遇到啥新问题再记下来_
每次升级都是一堆坑,求一家最低支持iOS9设备的公司Orz......

相关文章

网友评论

    本文标题:iOS9 快速适配Tips

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