我正在为 IOS 构建 expo 应用程序,并且收到该错误,因为我在项目中使用了 firebase。
错误: [!] 以下 Swift Pod 尚无法集成为静态库:
Swift pod
FirebaseCoreInternal
依赖于 GoogleUtilities
,它不定义模块。要选择那些生成模块映射的目标(在构建为静态库时需要从 Swift 导入它们),您可以在 Podfile 中全局设置 use_modular_headers!
,或者为特定依赖项指定 :modular_headers => true
。
错误:未知错误。有关更多信息,请参阅 Install pods 构建阶段的日志。
我尝试了互联网上的许多答案,但所有这些都与 React Native 和 pod 文件等相关
我在启动新的 React Native/Expo 项目并集成 React Native Firebase 时遇到了这个问题
"@react-native-firebase/app": "^20.1.0"
。
有两个步骤可以纠正此 IOS 构建错误:
首先,通过运行 npx expo install expo-build-properties
安装
expo-build-properties 包,然后将 app.json 插件中的 expo-build-properties 配置为
"useFrameworks": "static"
。
来自下面React Native Firebase Expo 文档的示例
"plugins": [
"@react-native-firebase/app",
"@react-native-firebase/auth",
"@react-native-firebase/crashlytics",
[
"expo-build-properties",
{
"ios": {
"useFrameworks": "static"
}
}
]
]
确保您已下载 Firebase 项目中的服务帐户文件,并且 app.json 文件中 googleServicesFiles 的路径正确。
文档显示 app.json 此时看起来像这样:
{
"expo": {
"android": {
"googleServicesFile": "./google-services.json",
"package": "com.mycorp.myapp"
},
"ios": {
"googleServicesFile": "./GoogleService-Info.plist",
"bundleIdentifier": "com.mycorp.myapp"
},
"plugins": [
"@react-native-firebase/app",
"@react-native-firebase/auth",
"@react-native-firebase/crashlytics",
[
"expo-build-properties",
{
"ios": {
"useFrameworks": "static"
}
}
]
]
}
}
接下来,您必须告诉 CocoaPods 使用框架。 打开文件 ./ios/Podfile 并在
use_react_native
之前添加这些行
use_frameworks! :linkage => :static
$RNFirebaseAsStaticFramework = true
use_react_native!
最后一步是运行
npx expo run:ios
,这应该会成功本地 IOS 构建。