React Native集成react-native-google-mobile-ads模块编译报错求助
环境信息
- react-native:
^0.71.1 - react-native-google-mobile-ads:
^9.1.1
报错信息
023-02-07 23:05:06.067 xcodebuild[92292:1835009] [MT] IDEFileReferenceDebug: [Load] <IDESwiftPackageCore.IDESwiftPackageSpecialFolderFileReference, 0x7fa23ae8f960: name:Docs.docc path:group:Docs.docc> Failed to load container at path: /Users/sangnlee/Library/Developer/Xcode/DerivedData/aaa-csqwegbowuhmbrehpztorwqemvkb/SourcePackages/checkouts/swift-protobuf/Sources/protoc-gen-swift/Docs.docc, Error: Error Domain=com.apple.dt.IDEContainerErrorDomain Code=6 "Cannot open "Docs.docc" as a "Swift Package Folder" because it is already open as a "Folder"." UserInfo={NSLocalizedDescription=Cannot open "Docs.docc" as a "Swift Package Folder" because it is already open as a "Folder".}
** BUILD FAILED **The following build commands failed:
Ld /Users/aaa/Library/Developer/Xcode/DerivedData/aaa-csqwegbowuhmbrehpztorwqemvkb/Build/Products/Debug-iphonesimulator/aaa.app/aaa normal (in target 'aaa' from project 'aaa')
(1 failure)
解决步骤
1. 清理Xcode DerivedData
直接删除报错关联的DerivedData文件夹,两种操作方式:
- 图形化操作:打开Xcode → 菜单栏
Xcode > Preferences > Locations→ 点击DerivedData路径后的箭头打开文件夹,删除当前项目对应的DerivedData文件夹 - 命令行操作:
rm -rf ~/Library/Developer/Xcode/DerivedData/aaa-csqwegbowuhmbrehpztorwqemvkb
2. 重置CocoaPods依赖
进入项目ios目录执行以下操作:
cd ios rm -rf Pods Podfile.lock pod install --repo-update
3. 解决Swift Package Manager冲突
这个报错大概率是swift-protobuf包重复引用导致的,按以下步骤处理:
- 打开Xcode → 菜单栏
File > Packages > Reset Package Caches - 检查项目中是否手动添加过
swift-protobuf,如果有直接移除(react-native-google-mobile-ads已自带该依赖) - 也可以在Podfile中指定固定版本避免冲突:
pod 'SwiftProtobuf', '~> 1.21.0'
4. 重置Xcode项目状态
- 关闭Xcode
- 删除项目的xcuserdata文件夹:
rm -rf ios/aaa.xcodeproj/xcuserdata
- 重新打开项目,按
Command + Shift + K清理构建缓存,再重新编译
5. 调整依赖版本
如果以上步骤无效,尝试调整依赖版本:
- 查阅
react-native-google-mobile-ads官方文档,确认与RN 0.71.1兼容的版本,尝试升级或降级该包 - 比如降级到
^8.0.0版本,再重复上述清理步骤重新构建
内容的提问来源于stack exchange,提问作者Lee

