1. 问题背景
用户反馈 iPhone11 iOS14.7 下载安装 App 后,点击图标,App 闪一下就回到了桌面。
收到问题反馈之后,使用手上测试机测试,iPhone11 iOS15.5 和 iPhone12 iOS15.0 均没有复现问题。
一时没有找到和用户相同的版本的测试手机,找到一台 iPhone11 iOS13.6 的手机。复现了问题。
后面使用 iPhone7 iOS13.6 也复现了问题。iPhoneX iOS16.0 没有问题。
2. 问题分析
问题分析使用的是 iPhone11 iOS13.6 和 iPhone7 iOS13.6 两部手机。
App 安装版本限制是 iOS13 及以上版本。
怀疑一: 是项目中引入的音频动态库版本太老不兼容导致。
检查之后发现虽然和最新版本差了2个小版本,并且文档中没有更新提示相关兼容性问题。并且项目打包上架,经过了 Validate App
。排除怀疑。
怀疑二: 系统 Api 在 iOS15.0 以下版本不兼容 。
如果是系统 Api 不兼容,不管是直接在 App store 下载安装,还是直接编译到手机,都会有问题。实际测试,直接编译到手机没有复现问题。
怀疑三: 群友提出可能是因为 Xcode 版本太老导致的问题
我目前的 Xcode 版本是 13.3.1,最新版本是 13.4.1,只差了一个小版本。
怀疑四: 群友提出可能电脑是 M1 芯片导致
感觉关系不大。
3. 问题调试
根据以上的四个疑问,逐个排查。
在调试之前,已经清除掉手机上已经存在的 App,并且卸载清除掉所有缓存。
1. 联机调试
手机连接电脑,直接编译到手机中。App 正常使用,没有闪退问题
2. Crashes
Xcode 中的 Crashes 也没有收到任何崩溃信息。
3. TestFlight
通过 TestFlight 的内外部测试,收集闪退的问题。
4. 升级 Xcode
申请使用备用电脑,进行 Xcode 升级,项目打包上架。在 Xcode 升级到 13.4.1 后打包上架的项目,闪退的问题消失。