Expo 和 React Native Firebase iOS Swift Pods 静态库问题

问题描述 投票:0回答:1

我正在为 IOS 构建 expo 应用程序,并且收到该错误,因为我在项目中使用了 firebase。

错误: [!] 以下 Swift Pod 尚无法集成为静态库:

Swift pod

FirebaseCoreInternal
依赖于
GoogleUtilities
,它不定义模块。要选择那些生成模块映射的目标(在构建为静态库时需要从 Swift 导入它们),您可以在 Podfile 中全局设置
use_modular_headers!
,或者为特定依赖项指定
:modular_headers => true

错误:未知错误。有关更多信息,请参阅 Install pods 构建阶段的日志。

我尝试了互联网上的许多答案,但所有这些都与 React Native 和 pod 文件等相关

ios firebase static expo react-native-firebase
1个回答
0
投票

我在启动新的 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 构建。

© www.soinside.com 2019 - 2024. All rights reserved.