React-Native集成Firebase后iOS编译失败:-fobjc-weak不支持当前部署目标
解决React Native iOS构建报错:
-fobjc-weak is not supported on the current deployment target 我之前也碰到过一模一样的问题,折腾了好一会儿才搞定,本质是部署目标版本太低导致的——-fobjc-weak这个编译选项只支持iOS 8.0及以上的系统,而你的项目或者依赖库(比如错误日志里提到的nanopb)设置的部署目标低于这个版本,就会触发构建失败。下面是具体的解决步骤:
1. 修改Podfile的部署目标
打开项目根目录下的ios/Podfile,找到开头的platform :ios行,把版本改成至少8.0(推荐设置为11.0及以上,适配React Native的最新要求):
platform :ios, '11.0'
2. 添加Post Install脚本强制统一依赖库的部署目标
有些第三方依赖库会自己设置较低的部署目标,所以需要在Podfile末尾添加一段脚本,强制所有pod的部署目标和主项目保持一致:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' end end end
3. 重新安装Pods
打开终端,进入项目的ios目录,执行以下命令清理并重新安装依赖:
cd ios pod deintegrate pod install
4. 检查并修改Xcode项目的部署目标
打开ios/[你的项目名称].xcworkspace(注意是xcworkspace不是xcodeproj):
- 在左侧项目导航栏选中你的项目
- 切换到
TARGETS标签页,选中你的主应用目标 - 在
Deployment Info区域,把iOS Deployment Target设置成和Podfile里一样的版本(比如11.0)
5. 清理Xcode构建缓存并重新构建
在Xcode中按下Cmd + Shift + K清理构建缓存,然后点击运行按钮,或者在终端执行:
react-native run-ios
这样应该就能解决这个构建错误了。
内容的提问来源于stack exchange,提问作者Michel Lesoinne
相关产品推荐
相关产品推荐

