我在 React Native 中通过 RNFirebase 使用 Firebase。我已经完成了这里的步骤:https://rnfirebase.io/docs/v5.x.x/installation/ios。
模拟器中的调试版本和我的设备工作正常,但是当我尝试存档发布版本时,它失败并出现此错误。
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/FirebaseAuth'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/FirebaseCore'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/GTMSessionFetcher'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/GoogleUtilities'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/nanopb'
ld: library not found for -lFirebaseAuth
clang: error: linker command failed with exit code 1 (use -v to see invocation)
同样在构建日志中,我可以看到调试配置构建了这些目标,但它们不在发布配置构建的输出中。我感觉这与为所有架构构建有关,但不知道如何从哪里开始解决这个问题。我只是觉得我在没有真正的策略来解决它的情况下四处闲逛。有什么想法吗?
我尝试过的一些事情...
- 使用旧版构建系统
- 删除
node_modules
并重新运行npm install
- 删除/添加相关 Pod
- 分解和重新添加可可豆荚
- 清除派生数据
- 重新启动我的电脑
我已经看到在关闭和打开use_frameworks!
时发生这种情况。
解决方案是从构建设置 - 其他链接器标志(OTHER_LDFLAGS(中删除 FirebaseAuth 和其他库
我从这个 PR 中得到了帮助:https://github.com/invertase/react-native-firebase-starter/pull/61
这是下降到 Xcode 10 中的遗留构建系统并将 React Native 升级到 0.57.2 的组合。