React Native Firebase集成AdMob后XCode Archive出现Linker命令错误
解决React Native Firebase AdMob Archive时Bitcode版本不匹配问题
我之前也踩过一模一样的bitcode版本不匹配坑,结合你的环境和错误信息来看,核心原因是Firebase AdMob的依赖库是用高于你当前Xcode版本的编译器编译的——你用的Xcode10.1对应的LLVM版本是1000.11.45.5,而AdMob依赖的bitcode是用Xcode10.2+(对应Producer版本1001.0.46.4.0)编译的,导致Archive时链接器无法解析。下面是几个可行的解决思路:
1. 临时禁用Bitcode(最快见效)
这是最快速的解决方案,适合赶发布的场景:
- 打开Xcode项目,选中你的主target,进入「Build Settings」
- 在搜索框输入
Enable Bitcode,将其值改为NO - 清理项目(Cmd+Shift+K)后重新尝试Archive
- 注意:苹果现在已经允许禁用Bitcode的App提交到App Store,不会影响发布流程
2. 升级Xcode到兼容版本
从根源解决bitcode版本匹配问题:
- 错误里的Producer版本
1001.0.46.4.0对应Xcode10.2及以上版本,而Xcode10.2是兼容macOS Mojave 10.14.6的 - 去App Store或者苹果开发者官网下载安装Xcode10.2(或更高的Mojave兼容版本)
- 安装完成后,打开终端进入项目目录,重新执行
pod install --repo-update,确保依赖重新适配新的Xcode环境 - 最后再尝试Archive操作
3. 锁定兼容版本的Firebase依赖
如果暂时不想升级Xcode,可以尝试降级react-native-firebase到一个依赖用Xcode10.1编译的版本:
- 修改项目的
package.json,将react-native-firebase的版本指定为5.x.x中更早的稳定版本(比如5.2.x系列,你可以先测试5.2.3) - 执行
npm install后,进入ios目录执行pod install --repo-update - 测试项目能正常运行后,再尝试Archive
额外注意事项
- 升级Xcode前建议备份项目,避免版本切换导致的配置问题
- 如果选择禁用Bitcode,后续如果需要重新开启,记得确保所有依赖的bitcode版本和Xcode版本匹配
内容的提问来源于stack exchange,提问作者L.U.
相关产品推荐
相关产品推荐

