开启或关闭Bitcode对App现有功能的影响及上线风险问询
Bitcode开关对App功能的影响及测试风险说明
1. 开启/关闭Bitcode对App现有功能的影响
- 若App所有代码、第三方依赖均完全兼容Bitcode规范,常规业务功能不会因为Bitcode开关出现逻辑差异
- 仅极端场景下会出现功能异常:
- 引入了不支持Bitcode的二进制组件时,开启Bitcode会直接导致编译、上传失败
- 苹果后端从Bitcode重编译二进制时,会应用对应架构的编译器优化策略,可能让代码中隐藏的内存问题、野指针、未定义行为提前暴露,出现和本地编译版本不同的表现
2. 你描述的分发场景确实存在测试用例未覆盖就上线的风险
你给QA分发IPA时取消勾选Rebuild from bitcode,实际拿到的是本地编译生成的最终机器码包;而上传App Store开启Bitcode后,终端用户下载到的是苹果后端重编译生成的二进制包,两个包的底层实现存在差异,可能出现QA验证过的功能在上线版本中异常的情况。
建议优化方案
- 若确定要开启Bitcode上线,导出Ad Hoc测试包时必须勾选
Rebuild from bitcode,将苹果重编译后的包交给QA做全量回归,保证测试覆盖的版本和用户实际收到的版本一致 - 目前苹果已不再强制要求iOS应用提交Bitcode,若想规避该类差异风险,可以直接在项目配置中关闭Bitcode选项


内容的提问来源于stack exchange,提问作者jshivam
相关产品推荐
相关产品推荐

