升级到iOS16后带来的影响
苹果一年一大版本,在2022年9月12日正式发布了iOS16
笔者升级到iOS16发现带来的影响如下:
开发者模式
在iOS16以前,添加设备UDID到证书的开发者app,默认是允许自由打开应用,而在iOS16,增加了【开发者模式】,顾名思意,跟安卓一样,开启开发者模式,才能进行调试。
默认iOS系统开发者模式是关闭的,打开方式,在设置 -> 隐私与安全性 -> 开发者模式
点击开启开发者模式后需要重启设备才能生效
设备重启后 系统会有2次弹窗需要确认才能开启开发者模式,并提示开启会“your device security will be reduced.”(降低系统的安全性)
企业证书
企业证书应用出包不受【开发者模式】影响,但需要信任证书才可以运行
TestFlight
目前【开发者模式】影响TestFlight应用的打开,iOS16以上安装TestFlight推送过来的应用,需要开启【开发者模式】,否则应用无法打开
理论上TestFlight上推送过来安装的应用无需开启开发者模式就可正常打开,目前苹果开发者文档显示已知悉这个问题,希望苹果下个版本会做更新修复
Xcode14出的framework在低版本Xcode编译报错
iOS16系统升级,伴随着Xcode也升级到Xcode14,在开发中发现相同工程代码,在Xcode14编译出的SDK库,在Xcode14以下会出现编译报错,如下:
遇到此类编译报错,需要检查Xcode版本是否低于14,如果版本低于Xcode14,需要升级Xcode到当前最新版本,打开Xcode后需要clean一遍,才可以编译通过。
剪贴板
从iOS14开始,app读取**剪贴板*时,在app顶部会显示一行提示内容:
苹果从2019年开始推行了SwiftUI,app读取剪贴板时,在app顶部显示的一行文字提示,这个顶部提示是用SwiftUI开发的,从iOS16开始,当app要读取剪贴板时,会被明确询问用户是否要允许它
注:目前没有永久授予或永久拒绝的配置,是系统层控制,也不需要开发者声明。所以,每次app尝试读取您的剪贴板时,都会弹出一次这个弹窗!
开发者需要注意的问题是:SwiftUI是在2019年iOS13之后推出来的,app读取剪贴板时,在app顶部显示的一行文字提示,用到了SwiftUI组件,如果在开发中有用到Swift去读取剪贴板,需要做iOS版本适配。
需要在工程引入SwiftUI库
注:如果用到Swift中的剪贴板,没有引入SwiftUI库,会导致低于iOS14的设备读取剪贴板会闪退
研发以及需要集成其他第三方SDK库的开发者,需要注意集成的库有没有用到Swift中的剪贴板,考虑到要适配低于iOS14的设备,最好不要集成带Swift读取剪贴板的库。