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

React Native iOS应用集成Firebase后编译失败求助

React Native iOS添加Firebase后编译失败的解决方案

问题现象

添加Firebase并导入GoogleService-Info.plist后,运行iOS应用时编译失败,出现以下错误:

2022-10-04 23:35:59.711 xcodebuild[38171:508367] [MT] IDEFileReferenceDebug: [Load] <IDESwiftPackageCore.IDESwiftPackageSpecialFolderFileReference, 0x146d065c0: name:Docs.docc path:group:Docs.docc> 加载路径为/Users/suvin/Library/Developer/Xcode/DerivedData/BoundaryTestApp-ekpfrimpksdanhevovuosfavhjwg/SourcePackages/checkouts/swift-protobuf/Sources/protoc-gen-swift/Docs.docc的容器失败,错误信息:Error Domain=com.apple.dt.IDEContainerErrorDomain Code=6 "无法将"Docs.docc"作为"Swift Package Folder"打开,因为它已被作为"Folder"打开。" UserInfo={NSLocalizedDescription=无法将"Docs.docc"作为"Swift Package Folder"打开,因为它已被作为"Folder"打开。}
** BUILD FAILED **

以下构建命令执行失败:
CompileC /Users/suvin/Library/Developer/Xcode/DerivedData/BoundaryTestApp-ekpfrimpksdanhevovuosfavhjwg/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React-logger.build/Objects-normal/arm64/react_native_log.o /Users/suvin/Documents/GitHub/react-native-geofence-example-master/node_modules/react-native/ReactCommon/logger/react_native_log.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (属于Pods项目的React-logger目标)
(1项失败)

核心问题分析

  1. AppDelegate逻辑错误:[FIRApp configure];之后直接返回YES,导致后续UI初始化、Flipper配置等关键代码未执行,引发编译/运行异常。
  2. DerivedData缓存冲突:Swift Package的Docs.docc被重复识别为普通文件夹和Swift Package文件夹,导致加载失败。
  3. Pods依赖或编译环境问题:React-logger的C++编译失败通常与依赖冲突、Xcode环境配置有关。

解决步骤

1. 修复AppDelegate.m代码逻辑

调整application:didFinishLaunchingWithOptions:方法的代码顺序,确保所有初始化代码正常执行:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef FB_SONARKIT_ENABLED
  InitializeFlipper(application);
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"BoundaryTestApp"
                                            initialProperties:nil];

  if (@available(iOS 13.0, *)) {
      rootView.backgroundColor = [UIColor systemBackgroundColor];
  } else {
      rootView.backgroundColor = [UIColor whiteColor];
  }

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];

  // 配置通知中心
  UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
  center.delegate = self;

  // 初始化Firebase(放在UI初始化之后)
  [FIRApp configure];

  return YES;
}

2. 清理DerivedData并重新安装Pods

  • 打开Xcode,点击菜单栏Xcode > 设置 > 位置,找到Derived Data,点击箭头打开文件夹,删除项目对应的DerivedData目录(如BoundaryTestApp-ekpfrimpksdanhevovuosfavhjwg)。
  • 进入项目的iOS目录,执行以下命令:
pod deintegrate
rm -rf Podfile.lock
pod install

(M1芯片Mac需执行:arch -x86_64 pod install)

3. 修复React-logger编译问题

  • 检查Xcode命令行工具版本:打开Xcode,Xcode > 设置 > 位置,选择最新的Command Line Tools版本。
  • 确保项目的Build Settings中,C++ Standard Library设置为libc++(Xcode默认值)。

4. 验证Firebase配置

  • 确认GoogleService-Info.plist已正确添加到Xcode项目:右键项目根目录,选择添加文件到"BoundaryTestApp",勾选复制项目(如果需要)和对应Target。
  • 检查Build Phases > Copy Bundle Resources中是否包含GoogleService-Info.plist,若未包含则手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:10:35