仅iOS 14环境下MDM安装App Store来源包启动崩溃问题咨询
问题诱因
该问题是Xcode 13.0的已知兼容性bug,与iOS 14系统MDM安装场景的代码签名校验逻辑冲突导致:
- 当使用Xcode 13.0构建、部署目标设置为iOS 14及以上版本时,生成的可执行文件会默认采用新版链式代码签名格式
- iOS 14系统对MDM推送安装的应用,会走独立的企业级签名校验流程,该流程对新版链式签名的处理存在内存访问漏洞,会导致dyld(动态链接器)在加载应用的阶段就触发段错误崩溃,崩溃发生在所有应用代码执行之前,因此不会有任何应用层日志输出
- iOS 15完善了新版签名的校验逻辑,普通App Store下载走的校验流程与MDM场景不同,因此这两个场景不会触发崩溃
解决方案
可根据项目实际情况选择任意一种方案修复:
- 若无需强制停止支持iOS 13,直接将应用部署目标回退到iOS 13即可,Xcode 13在部署目标低于iOS 14时会自动生成兼容旧版签名格式,问题直接消失
- 若需要保留iOS 14+的部署目标要求,将Xcode升级到13.2.1及以上版本即可,苹果已在后续Xcode版本中修复了该签名生成的兼容性问题
- 若暂时无法升级Xcode也不愿降低部署目标,可在项目构建设置的
OTHER_CODE_SIGN_FLAGS(其他代码签名参数)中添加--generate-previous-signature参数,强制Xcode生成兼容旧格式的签名,也可解决该问题
内容的提问来源于stack exchange,提问作者scaly
相关产品推荐
相关产品推荐

