1、Bitcode 应用瘦身
bitcode是把程序编译成的一种中间代码,然后苹果再把这个中间代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,用于App瘦身计划。
所以用了xcode7的编译器编译之前没问题的项目可能会出现下列报错:
原因是你项目中的某些框架不支持bitcode,如果这个框架不支持bitcode,可以尝试更换支持bitcode的框架,或者将项目bitcode设置为NO:
2、信任应用开发者
在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。 下图展示左边iOS8,右边iOS9:
用户需要去 设置--->通用--->描述文件 ->信任它!
3、字体适配
iOS8中,字体是Helvetica。
iOS9中,中文系统字体变为了专为中国设计的稍圆滑的字体。字体有轻微的加粗效果,并且最关键的是字体间隙变大了!所以很多原本写死了标签宽度可能会出现以下情况:
iOS8 ->
iOS9 ->
可通过下面这个方法来确定其宽度:
CGSize size = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];
CGSize adSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
4、URL scheme
它一般用于不同app之间的跳转与交互。在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转,如果iOS9没做适配 会报如下错误:
具体的解决方案是在info.plist中设置 LSApplicationQueriesSchemes 类型为数组,下面添加所有你用到的scheme,例如weixin,mqzone: