随着iOS系统的发布,很多应用不得不做出适配iOS9的改善。需修改6方面的内容
一、字体:iOS9 字体变得美观当字体间隙变大
在同一个label中显示的字体个数因间隙变大而有的文字不显示。所以建议
使用sizetofit 或者ios向上取整 ceilf() 或者提前计算
<span style="font-family:Times New Roman;font-size:18px;">{
// 设置字体
CGSize size = [@"这是需要设置的字体" sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:13]}];
CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
}</span>
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES。在 Info.plist 中设置好 ,bmob 就能继续用了
三、Bitcode
bitcode的理解应该是把程序编译成的一种过渡代码,然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,有类似于App瘦身的思想。
用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。
XXXX’ 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。要不然是等待库的开发者升级了此项功能我们更新库,要不就是把这个bitcode禁用。
禁用的方法就是找到如下配置,选为NO.(iOS中bitcode是默认YES,watchOS中bitcodes是不让改的必须YES。)
四、设置信任
这一条只和企业级应用或inhose 有关,和AppStore渠道的应用无关。
在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。 用户需要去 设置---》通用---》描述文件 里面自行添加信任。这种问题的处理方法也就两种:1.提前周知暂时不要升级iOS9 2.大多是公司员工使用的企业级应用,群发一个指导邮件。
五、URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。
在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转
如果iOS9没做适配 会报如下错误:canOpenURL: failed
for
URL :
"mqzone://qqapp"
- error:
"This app is not allowed to query for scheme mqzone"
具体的解决方案也是要在info.plist中设置 LSApplicationQueriesSchemes 类型为数组,添加所有你用到的scheme,用字符串NSString类型添加访问网站名
六、tableView
虽然现在的iOS9已经推送正式版了,但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿显示的最为明显。 并且之前遇到一个bug,原本好的项目用xcode7一编译,tableView刷新出了问题 ,[tableView reloadData]无效 有一行cell明明改变了但是刷新不出来。 感觉可能是这个方法和某种新加的特性冲突了,猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。解决的方法是,注释[tableView reloadData],改用局部刷新,问题居然就解决了。
在网上查询到的结果,跟大家分享分享!