You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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(如果有的话),确保包含arm64x86_64两个架构

补充说明:为什么M1 Mac能正常构建?

因为M1芯片是arm64原生架构,你使用的FBAEMKit框架的arm64版本是包含Bitcode的;而Intel Mac是x86_64架构,编译时调用的框架版本没有包含Bitcode,所以才会出现这个差异报错。

备注:内容来源于stack exchange,提问作者Ahmed Mohsen

火山引擎 最新活动