iOS 16 版本适配

1、iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式 中打开开发者模式。

2、隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称([UIDevice currentDevice].name返回iPhone,不再返回用户自定义的名字)

3、横竖屏,Xcode13.1通过设置[UIDevice currentDevice] setValue:@(orientation) forKey:@"orientation"]和[UIViewControllerattemptRotationToDeviceOrientation]];

;iOS16 beta系统手机不会收到UIDeviceOrientationDidChangeNotification通知,需要在VC中viewWillTransitionToSize中处理横竖屏展示

补充:iOS16开始选转屏幕需要使用UIWindowScene的相关API。

4、不支持通过 setValue:forKey: 在UIDevice上设置方向,也不再有效。需要开发者检查是否有使用此方法,可能后续版本将不能使用(未复现,可能Xcode14生效)。

5、App Tracking Transparency即使允许了跟踪,也获取不到 IDFA(已验证)。

6、Apple ID Authentication可能无法使用 Apple ID 认证,临时解决方法,重启设备(未复现)。

7、未在设置中打开『开发者模式』时,TestFlight可以正常安装测试包,但是在打开App时会提示『需要启用开发者模式』;企业包不影响。

8、iOS 14 App读取剪贴板时,顶部会提示内容:App正在使用剪切板;在 iOS 16App 要读取剪贴板时,会被明确询问用户是否要允许它,目前没有永久授予或永久拒绝的配置,是系统层控制,也不需要开发者声明(验证如评论图)。

9、代码按如下方式写时,在iOS16上会导致状态栏消失一会儿(beta3上已修复)

10、UITableView调用reloadData时,cell的复用也会发生变化,如果有异步操作(比如网络请求)过程中,调用了reloadData,此时捕捉到的cell其实已经不再是之前的cell了,那么和cell相关的操作就都有问题

11、iOS16.0 第三方输入法键盘在频繁弹出、收起时,会出现over-release导致闪退,如果遇到控制器跳页,并且键盘频繁弹出、收起的情况,建议拉长键盘弹出间隔,比如把键盘弹出放到viewDidAppear中,不会彻底解决,但会降低出现闪退概率
12、使用xcode14 debug的时候启动较慢,可以删除该目录下所有文件“~/Library/Developer/Xcode/iOS DeviceSupport/”,在xcode中选择当前手机并unpair the device,拔出手机,重启xcode,插上手机,信任就恢复正常
 

更多参考:

iOS16 适配指南(基于Xcode 14 Beta1)iOS16 适配指南 - 简书

iOS & iPadOS 16 Beta Release Notes | Apple Developer Documentation https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-16-release-notes

WWDC22 开发者需要关注的重点内容 https://chowdera.com/2022/170/202206191911372968.html

iOS16 Xcode14 适配 

iOS16 Xcode14 适配 - 掘金

猜你喜欢

转载自blog.csdn.net/ZhaiAlan/article/details/131457534