You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode构建报错FBLPromises.framework不含bitcode问题咨询

修复方案

该问题本质是Bitcode关闭配置未覆盖全量target导致,按以下步骤操作即可解决,同时可一并修复Xcode 14下的归档签名报错:

  • 先清理全量构建缓存与旧Pods配置,进入工程iOS目录执行终端命令:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate
pod cache clean --all
  • 打开Podfile,找到末尾的post_install代码块,替换为如下内容,强制所有Pods依赖统一关闭Bitcode、关闭依赖项签名,避免配置不一致:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # 所有构建模式下强制关闭Bitcode
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      # 关闭第三方依赖的代码签名,解决Xcode14签名报错
      config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
      config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO'
      config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ''
    end
  end
end

修改完成后执行pod install使配置生效。

  • 打开Xcode工程,逐一检查所有手动创建的target(包括主App、通知扩展、分享扩展等):进入Build Settings页,搜索ENABLE_BITCODE,将Debug、Release、Profile所有构建模式下,Any iOS SDK、Any iOS Simulator SDK所有分支的配置值全部改为No,不要遗漏任何自定义target。
  • 若为Flutter工程(从路径中的Runner目录可判断),额外检查ios/Flutter目录下的自定义xcconfig配置文件,删除所有ENABLE_BITCODE = YES的配置行,避免Flutter编译配置覆盖Xcode手动设置。
原因说明
  • FBLPromises是PromisesObjC组件的二进制产物,该组件通常作为Firebase、Google系SDK的依赖,官方发布的预编译版本默认不包含Bitcode段,只要任意一个target在归档时开启Bitcode校验,就会抛出该错误。
  • 仅在Podfile全局配置块写Bitcode关闭规则无法覆盖所有Pods依赖的构建配置,必须在post_install钩子中遍历所有target、所有构建模式逐一设置才能生效。
  • Xcode 14开始默认开启Pods依赖的代码签名校验,仅为主target配置开发团队无法覆盖依赖项的签名配置,关闭依赖项签名是CocoaPods工程适配Xcode14+的通用方案。
  • Xcode 14及以上版本苹果已正式废弃Bitcode机制,App Store不再接收携带Bitcode段的安装包,全量关闭Bitcode完全符合官方要求,无需尝试开启ENABLE_BITCODE解决问题。

内容的提问来源于stack exchange,提问作者satchel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:57:13