React Native 和 RNFirebase iOS 版本构建失败

Posted

技术标签:

【中文标题】React Native 和 RNFirebase iOS 版本构建失败【英文标题】:React Native and RNFirebase iOS Release Builds Failing 【发布时间】:2018-10-09 20:28:42 【问题描述】:

我在 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 分解和读取 Cocoapods 清除 DerivedData 重新启动我的电脑

【问题讨论】:

【参考方案1】:

我已经看到在关闭和打开use_frameworks! 时会发生这种情况。

解决方案是从 Build Setting - Other Linker Flags(OTHER_LDFLAGS) 中删除 FirebaseAuth 和其他库

【讨论】:

感谢您的建议,我确实尝试过这个,然后才想到 .frameworks 会救我。也许它是这个带有 RN 升级的 Legacy Build System 的组合。【参考方案2】:

我从这个 PR 得到了帮助:https://github.com/invertase/react-native-firebase-starter/pull/61

这是在 Xcode 10 中下降到旧版构建系统并将 React Native 升级到 0.57.2 的组合。

【讨论】:

以上是关于React Native 和 RNFirebase iOS 版本构建失败的主要内容,如果未能解决你的问题,请参考以下文章

[RN][IOS]是不是可以将 React Native RCTLinking 与 RNFirebase 动态链接结合使用?

React-Native:我退出我的应用程序后,messaging().onNotificationOpenedApp 没有调用

React Native 中的 AdMob 原生广告

React Native 中的 Xcode 项目在哪里?

嗨,我对 React Native Firebase 有疑问

React-native-firebase 应用内消息不起作用