Intel芯片Mac打包iOS项目时FBAEMKit框架缺失bitcode报错求助
Intel芯片Mac打包iOS项目时FBAEMKit框架缺失bitcode报错求助
兄弟,我之前也碰到过几乎一模一样的问题,给你几个亲测有效的解决思路,你可以挨个试试:
1. 直接关闭当前Target的Bitcode支持
这是最快速的解决办法,毕竟现在苹果官方也已经放宽了Bitcode的要求,App Store完全接受关闭Bitcode的应用提交。操作步骤:
- 打开Xcode,选中你的项目工程
- 切换到对应的Target(MalaebappV3)
- 进入
Build Settings标签页,搜索ENABLE_BITCODE - 将该选项的值修改为
NO - 清理项目(Cmd+Shift+K)后重新尝试Archive
2. 更新FBAEMKit框架到最新版本
FBAEMKit是Facebook SDK的一部分,旧版本的框架可能在Intel架构的编译环境下没有包含Bitcode,而M1芯片的arm64版本是正常的。你可以:
- 检查你当前使用的Facebook SDK版本,然后更新到官方最新版
- 如果是用CocoaPods管理依赖,直接修改Podfile里的对应版本,执行
pod update FBAEMKit后重新安装依赖
3. 清理Derived Data缓存后重新构建
有时候Xcode的缓存文件会导致框架编译出现异常,尤其是跨不同架构的Mac设备时。你可以:
- 打开Xcode的
Preferences(Cmd+,),切换到Locations标签 - 找到
Derived Data,点击右侧的箭头打开对应的文件夹 - 删除名为
MalaebappV3-booqrwdhpgaifkchtlgmmtgyayxd的整个文件夹 - 回到Xcode,执行
Clean Build Folder(Cmd+Shift+Option+K) - 重新执行Archive操作
4. 检查项目的架构设置
确认你的项目架构配置没有限制,导致Intel Mac编译时拉取了错误的框架版本:
- 进入Target的
Build Settings,搜索Architectures - 确保
Architectures设置为Standard Architectures (arm64, x86_64) - 检查
VALID_ARCHS(如果有的话),确保包含arm64和x86_64两个架构
补充说明:为什么M1 Mac能正常构建?
因为M1芯片是arm64原生架构,你使用的FBAEMKit框架的arm64版本是包含Bitcode的;而Intel Mac是x86_64架构,编译时调用的框架版本没有包含Bitcode,所以才会出现这个差异报错。
备注:内容来源于stack exchange,提问作者Ahmed Mohsen




