为什么我在尝试运行我的 iOS 应用程序时收到错误“FirebaseCore/FirebaseCore.h”文件未找到”

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

我最近开始使用配备 M1 芯片的 MacBook Pro,该芯片来自旧款 MacBook Pro,运行此应用程序没有任何问题。现在,当我尝试构建并运行我的应用程序时,我遇到以下问题:

'FirebaseCore/FirebaseCore.h' file not found

Could not build Objective-C module 'Firebase'

我尝试过的:

  • 清理我的构建文件夹
  • 删除派生数据
  • 重新启动我的电脑
  • 跑步
    pod install --repo-update
  • 当我将我的方案更改为 FirebaseCore 时,错误确实消失了,但随后我无法在模拟器上运行该应用程序。

这是我的 pod 文件:

# Uncomment the next line to define a global platform for your project
 platform :ios, '14.0'

post_install do |pi|
    pi.pods_project.targets.each do |t|
      t.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0'
      end
    end
end

target 'Pikit' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Firebase
  pod 'Firebase'
  pod 'Firebase/Storage'
  pod 'Firebase/Auth'
  pod 'Firebase/Firestore'
  pod 'Firebase/Functions'
  pod 'Firebase/Analytics'
  pod 'Firebase/Messaging'
  pod 'Firebase/DynamicLinks'
  pod 'FirebaseUI/Auth'
  pod 'FirebaseUI/Email'
  pod 'FirebaseUI/Google'
  pod 'FirebaseUI/Facebook'
  pod 'FirebaseUI/OAuth' # Used for Sign in with Apple, Twitter, etc
  pod 'FirebaseUI/Phone'

  
  # Other Podfiles
  pod 'OnboardKit'
  pod 'SDWebImage'
  pod 'PureLayout'
  pod 'IQKeyboardManagerSwift'
  pod 'Google-Mobile-Ads-SDK'


  
end
ios swift firebase cocoa apple-m1
7个回答
10
投票

如果有人仍然面临这个问题, 如果您已经清理了构建文件夹、删除派生数据、删除 pod.lock 和 pods 文件夹,我建议打开终端并

插入: pod 分解 && pod 安装

差异是由 deintegrate 调用引起的,它将删除构建阶段以及框架文件夹。

还要考虑: 使用 M1 芯片 MacBook,在为模拟器而非真实设备/MacBook 构建项目时,我也遇到了上述错误。

更新:

所有 Firebase 依赖项都应该在 M1 模拟器上运行。

对于一般知识:

如果某些依赖项在 M1 Macbook、arm64 模拟器上失败,请找到所需依赖项的 'libName'.xcframework,并确保它包含 'ios-arm64_x86_64-simulator' 文件夹,然后将其拖放到您的项目根目录(根据您的喜好复制或引用)。

如果构建时找不到依赖:

打开您的项目 在项目导航器中 => 找到您的目标 在“目标”列中 => 通用加密狗 => 滚动到 框架、库和嵌入内容并嵌入位于“请勿嵌入”中的库状态。

最好的方法是通过迦太基

很高兴知道:如果想要的依赖项不包含所需的文件夹,仍然可以直接在 Github 上询问开发人员。


3
投票

在我的例子中,我正在运行

.xcodeproj
文件,因此我的 Pod 没有同时运行。使用
.xcworkspace
文件加载项目和 Pod。

作为旁注,如果上述方法不起作用并且您是使用 Cordova 和 FirebaseX 的人,我用来解决问题的版本是 FirebaseX 8.0.1 和 Cordova IOS 5.0.1*

* (暂时即将弃用)


2
投票

“仅构建活动架构”在其中发挥了作用。尝试更改此设置,看看是否有帮助。


2
投票

将此添加到 podfile 的末尾。

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

1
投票

使用 pod update 更新 Pod 使用 Cmd+sht+k 清理项目并开始构建


0
投票

请执行以下操作。

  1. rm -rf ~/Library/Developer/Xcode/DerivedData/
  2. pod deintegrate
  3. pod install

0
投票

您刚刚在新下载的 macOS、Xcode 等上运行旧项目吗?此时,由于 Google Firebase 中的更改(与 Xcode、macOS 和 iOS 中的“更新”相比),可能会出现此问题。

快速回答:现代 Firebase 软件包不需要您在 Podfile 中导入 FirebaseCore,它只是附带的。然而,与其费尽心思地注释掉 import 语句并试图弄清楚它是如何工作的,还有更好的方法。

摆脱此问题的最简单、最好的方法是从使用 CocoaPods 依赖管理器切换到使用 Swift 包管理器 (SPM)。对于学习了整个行话的 CocoaPods 长期用户(像我一样)来说,这听起来可能没有吸引力,但 SPM 实际上对于 Google 的 Firebase 等常用依赖项来说相当简单。

首先,使用“pod deintegrate”命令从项目中卸载 CocoaPods。现在,无需重新安装它,而是转到 Google 的 Firebase 设置 Firebase 页面,然后转到使用 SPM 而不是 CocoaPods 的部分。 它非常简单,只需在 Xcode 中打开一个菜单并从 Firebase 中选择您想要的包即可。以下是说明:https://firebase.google.com/docs/ios/installation-methods#swift-package-manager

打开 Xcode 上的“文件”菜单 -> 选择“添加包”

然后将 Firebase 文档中提供的 URL/网站链接插入右上角的搜索栏中:

按“添加包”后,您将获得 Firebase 中可添加到项目中的包列表。要么添加文件中导入语句中显示的内容,要么使用终端从项目文件夹中打开 Podfile(“打开 Podfile”),然后阅读您之前编写的内容并找到它们。

您唯一找不到的是“FirebaseCore”(旧的书写方式是 Firebase/Core),这是因为它是任何 Firebase 包的一部分。事实上,如果您查看项目的 Pod,您会发现 FirebaseCore 就是其中一个文件。

您可能会遇到比这更多的问题,但大多数情况下,它只会检查您的项目错误并通过 Xcode 插入给定的解决方案。

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