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

Dav*_*vid 9 cocoa ios firebase swift apple-m1

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

'FirebaseCore/FirebaseCore.h' file not found
Run Code Online (Sandbox Code Playgroud)

Could not build Objective-C module 'Firebase'
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 清理我的构建文件夹
  • 删除派生数据
  • 重新启动我的电脑
  • 跑步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
Run Code Online (Sandbox Code Playgroud)

Rub*_*Mim 10

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

插入:pod deintegrate && pod install

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

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

更新:

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

不过对于一般知识来说:

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

如果构建时未能找到依赖项:

在项目导航器中打开您的项目=>在“目标”列中找到您的目标 => 常规加密狗 => 滚动到“框架”、“库”和“嵌入内容”,然后嵌入处于“不嵌入”状态的库。

最好的方法是通过迦太基

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