苹果手机适配Xcode13打包及ios15系统
- 1. 问题统计
- 2. 适配问题
- 3. iOS15.2系统相册权限卡死Bug影响分析
2021年9月苹果发布xcode13及iOS15,苹果每年都有要求限制开发者提交市场App的xcode版本,手机证券App为提前应对限制,做好充分时间准备。
目前公司的项目提前在做适配工作, 所以再次记录。
1. 问题统计
Showing All Messages
: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Workspace Settings.
Xcode-〉file-〉Workspace Settings 选择新的模式(项目以前都是使用旧的编译模式)
Showing All Messages
/Users/xia/EssenceMobile_ios/project/axsc/tztMobileApp_axsc.xcodeproj Building for iOS, but the linked and embedded framework 'alivcffmpeg.framework' was built for iOS + iOS Simulator.
Xcode-〉Build Setting-〉VALIDATE_WORKSPACE = YES;
Showing All Messages
Multiple commands produce '/Users/xia/Library/Developer/Xcode/DerivedData/tztMobileApp_axsc-bacmqduyvlscwtgrianwrtoxrvsm/Build/Products/Debug-iphonesimulator/tztMobileApp_axsc.app/MJRefresh.bundle':
1) That command depends on command in Target 'tztMobileApp_axsc' (project 'tztMobileApp_axsc'): script phase “Run Script”
2) That command depends on command in Target 'tztMobileApp_axsc' (project 'tztMobileApp_axsc'): script phase “[CP] Copy Pods Resources”
Podfile
install! 'cocoapods', :disable_input_output_paths => true
/Users/xia/EssenceMobile_ios/Frameworks/TIFASDK/TIFASDK.xcodeproj The linked framework 'AxsThirdVendors.framework' is missing one or more architectures required by this target: i386.
'AxsThirdVendors.framework' 缺少i386的架构【模拟器编译】
TIFACustomButton
_font;- >ax_font;
、
2. 适配问题
式配点 | 现象 | 方案 |
---|
UITableView | 从 iOS 15 开始,TableView 增加sectionHeaderTopPadding属性,默认情况sectionHeaderTopPadding会有22个像素的高度,及默认情况,TableView section header增加22像素的高度 | self.tableView.sectionHeaderTopPadding = 0 |
保存相册 | UIImageWriteToSavedPhotosAlbum存储图片之后的回调不再返回图片了,会返回nil,如果在回调方法里面操作image有可能会直接Crash | 目前的解决办法声明一个全局image去记录,后面再去操作 |
3. iOS15.2系统相册权限卡死Bug影响分析
12 月 15 日,苹果发布了 iOS 15.2 的正式版。不幸的是这次升级,获取相册权限在特定情况下会卡死:
在还未向用户申请相册权限时,即
[phphotoLibrary authorizationStatus] != PHAuthorizationStatusAuthorized 时,
如果调用 [[PHPhotoLibrary sharedPhotoLibrary] registerChangeObserver:xxx]; 添加监听,则会卡死。苹果开发者论坛也有反馈(https://developer.apple.com/forums/thread/696131),目前苹果还未有回应,可以看到这个问题在 15.2 beta 版中就存在了,需观察苹果后续会如何处理。
临时方案可以在注册前进行判断,如果没有权限,则不注册观察者。
IOS11之后,系统访问相册即使是第一次访问相册,系统也没有弹出需要用户授权的弹框,对于一些审核比较严格的app这一点我们需要注意
- 后续在适配的过程中,持续更新,直至适配完