Xcode14.2编译失败:FBLPromises.framework无bitcode,修改后启动崩溃
解决FBLPromises.framework Bitcode问题后应用启动崩溃的方案
问题背景
'/Users/apple/Library/Developer/Xcode/DerivedData/Unity-iPhone-fqqzmksymhhvlkeeynbylkkvusgy/Build/Products/ReleaseForRunning-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises'
不包含bitcode。您必须启用bitcode重新构建它(Xcode设置ENABLE_BITCODE),从供应商处获取更新后的库,或者为此目标禁用bitcode。文件
'/Users/apple/Library/Developer/Xcode/DerivedData/Unity-iPhone-fqqzmksymhhvlkeeynbylkkvusgy/Build/Products/ReleaseForRunning-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises'
针对架构arm64
修改ENABLE_BITCODE设置后编译问题解决,但应用启动时崩溃。
可行解决方案
1. 确保Bitcode设置全局一致
- 检查项目**所有目标(主应用、依赖框架)**的
ENABLE_BITCODE设置完全统一:要么全部开启,要么全部关闭- 打开Xcode项目,选中主目标进入
Build Settings,搜索ENABLE_BITCODE - 逐一确认所有依赖框架的Build Settings,保证Bitcode状态无差异
- 打开Xcode项目,选中主目标进入
2. 彻底清理构建缓存后重编
- 执行以下步骤清除缓存:
- 关闭Xcode
- 删除DerivedData目录:
rm -rf ~/Library/Developer/Xcode/DerivedData - 打开Xcode,执行
Product > Clean Build Folder(快捷键Cmd+Shift+K) - 重新构建项目
3. 替换为兼容Bitcode的框架版本
- 若通过CocoaPods引入框架,执行
pod update PromisesObjC获取支持Bitcode的最新版本 - 若手动导入框架,从官方渠道下载带Bitcode的预编译包,或自行编译时开启Bitcode选项
4. 定位崩溃具体原因
- 查看Xcode设备日志(
Window > Devices and Simulators > 选中设备 > View Device Logs),分析崩溃栈:- 若为符号缺失,检查框架的
Embed & Sign/Do Not Embed设置是否正确 - 若为架构不兼容,确认框架支持当前目标设备的arm64架构
- 若为符号缺失,检查框架的
内容的提问来源于stack exchange,提问作者Engr.Aftab Ufaq
相关产品推荐
相关产品推荐

