错误:无法构建Objective-C模块' Firebase'

时间:2017-01-18 01:22:17

标签: firebase swift3 xcode8 ios10

当我编译应用程序时,我得到一个等于此的错误:

  

无法构建Objective-C模块' Firebase'

此错误出现在我的swift文件的import Firebase中。

28 个答案:

答案 0 :(得分:83)

只有一种方法可以解决这个问题。

  1. 退出Xcode。
  2. 删除位于~/Library/Developer/Xcode/DerivedData
  3. 的项目临时文件
  4. 删除ProjectName.xcworkspace
  5. 删除Podfile.lock文件和Pods文件夹
  6. 运行pod install
  7. 打开新创建的ProjectName.xcworkspace文件并构建。

答案 1 :(得分:39)

构建 + B )为我工作。

答案 2 :(得分:28)

我正在使用Swift 4和Xcode 9.我所要做的就是选择FirebaseCore Scheme。

在Xcode上:

Manage Schemes

如果您没有FirebaseCore,请转到geom_bar()并选择它。然后再试一次。

答案 3 :(得分:20)

这可能会解决您的问题:

  1. 退出Xcode。 (不要只关闭Xcode窗口,右键单击并明确退出)。

  2. 转到~/Library/Developer/Xcode/DerivedData并删除项目文件夹。 (只需删除所有文件夹)。

  3. 清理并构建项目。

  4. 如果仍然存在错误:

    执行步骤1和2并按照以下步骤操作:

    1. 将方案更改为Firebase和Build(命令 + B )。

    2. 更改回您的应用方案并再次运行。

答案 4 :(得分:4)

通过CocoaPods正确安装FireBase。请尝试以下步骤

第1步-关闭Xcode

第2步-清除衍生数据。您可以在这里找到派生数据

〜/库/开发人员/ Xcode / DerivedData 第3步-打开您的.xcworkspace

第4步-清理项目(⌘+ Shift + K)

第5步-构建项目(⌘+ B)

确保已打开.xcworkspace文件

答案 5 :(得分:3)

'pod deintegrate'和'pod install'对我有用。

答案 6 :(得分:2)

发生在我身上的原因是我安装了Firebase CocoaPods,但没有通过#include <memory> class A { public: void* operator new(size_t) = delete; void* operator new(size_t, void*) = delete; void* operator new [] (size_t) = delete; }; // Regular new fails A* a1 = new A(); // Placement new fails void* pv = std::malloc(sizeof(A)); A* a2 = new (pv) A(); // make_shared works std::shared_ptr<A> a3 = std::make_shared<A>(); 文件重新打开它。 所以我要做的是:

  • 我退出了Xcode
  • 通过单击项目的<projectName>.xcworkspace文件将其打开
  • 然后我可以在项目中使用“导入Firebase”。

答案 7 :(得分:2)

最近在使用Xcode 12时遇到了这个问题。我发现删除“有效体系结构”构建设置(VALID_ARCHS)可以解决此问题。

摘自Xcode 12发行说明:

“构建设置”编辑器不再包含“有效体系结构”构建设置(VALID_ARCHS),不建议使用。而是有一个新的“排除的体系结构”构建设置(EXCLUDED_ARCHS)。如果项目包含VALID_ARCHS,则该设置将显示在“构建设置”编辑器的“用户定义”部分中。 (15145028)

答案 8 :(得分:2)

我正在使用Swift 4和Xcode 9.4。这为我解决了同样的问题。

除了目标项目外,我还在XCode-> Manage Schemes中选择了以下框架

在Xcode中:

ViewHolder

答案 9 :(得分:2)

我试过这个(退出Xcode,删除所有临时文件,重新安装pod等)并且它不起作用。在command + b之后,工作只是在构建我的项目(pod install)。无论什么都有效!

答案 10 :(得分:2)

请你试试看my answer here

TL; DR 确保您正在运行cocoapods版本1.4.0 minimum。它修复了静态框架导入。

您可以在终端上运行sudo gem install cocoapods并通过输入pod --version验证您的版本

来执行此操作

答案 11 :(得分:1)

这对我有用:

  1. 关闭Xcode
  2. pod解体
  3. 删除xcworkspace
  4. pod安装
  5. 在项目导航器中>项目名称>配置
  6. 全部设置为无
  7. 清洁
  8. 构建

答案 12 :(得分:0)

只需转到 Pod target 并在 Excluded Architectures

中设置 arm64

enter image description here

答案 13 :(得分:0)

对我来说,问题很简单。我有一个新的 m1 mac,它有时无法加载可可豆荚。简单地说:

  • 点击您的 pods 项目(蓝色 pods)->
  • 点击所有并构建设置 ->
  • 排除的架构 ->
  • 在调试和发布中添加“arm64” ->
  • 在左侧设置任意 SDK ->
  • 在你的主项目文件夹上也这样做 ->
  • 打造适合自己的产品

enter image description here

答案 14 :(得分:0)

当我打开白色工作空间而不是蓝色工作空间时,它对我有用。您在桌面上按文件,然后按白色文件。

文件外观的图像: Image of what the file looks like

答案 15 :(得分:0)

我在 Flutter 项目中遇到了同样的问题。

您应该从项目和每个 pod 目标中排除用于模拟器架构的 arm64

从项目中排除 arm64

Excluded Architectures

将此代码添加到 Pofile

post_install do |installer|
  installer.pods_project.targets.each do |target|
    # exclude arm64 for simulator architecture the pod target
    target.build_configurations.each do |config|
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
    end
  end
end

答案 16 :(得分:0)

构建时,请确保您位于项目导航器的根目录中。

答案 17 :(得分:0)

以上解决方案均不适合我。我发现问题是我在Cocoapods文件中有三个目标。而且只有我主要的一个目标添加了Firebase。这样,当我要将Firebase导入到其他目标中使用的文件时,Xcode会给出错误消息并指出未找到模块“ Firebase”。这是我的pods项目文件。对我来说,一种解决方案是将Firebase Pod添加到所有目标。或者另一种解决方案是从其他目标中删除文件。

def common_pods
  pod 'XXX'
end

target 'myMainProject' do
  common_pods()
  pod 'Firebase/Core'
  pod 'Firebase/AdMob'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Crashlytics'
  pod 'Firebase/Analytics'
end

target 'myExtention1' do
  common_pods()
end

target 'myextension2' do
  common_pods()
end

答案 18 :(得分:0)

For and Solution非常简单,因为我在执行pod install:D之后没有从.xcworkspace打开项目,并且遇到了相同的错误。 我错误地从旧的.xcodeproj文件中打开了它。 对我来说就是这样,大声笑

答案 19 :(得分:0)

我用.xcodeproj打开了项目,并用cocoapods安装了Firebase。我遇到了同样的错误。但是我只是关闭项目,然后使用.xcworkspace打开它。

警报已消失。 Firebase是我项目中的第一个库。所以我一直使用.xcodeproj文件。

答案 20 :(得分:0)

我已禁用查找隐式依赖项,以加快Edit Scheme... > Build下的构建过程。

重新启用它可以解决此问题。 enter image description here

答案 21 :(得分:0)

经过2天的搜索并尝试了本文中提出的每一个步骤,最终我可以解决问题。以上方法均不能解决我的问题,但可以解决这个问题:

  1. 有一个Firebase框架包可从此链接下载: https://firebase.google.com/download/ios?authuser=0
  2. 此程序包中有一个Firebase.h头文件。我将此头文件添加到我的项目资源中。
  3. 最后,我在该文件的顶部添加了一行代码: '#import“ Firebase.h”'

简单,轻松地消除错误!

答案 22 :(得分:0)

确保,您正在使用与Pod文件位于同一目录中的工作区文件

答案 23 :(得分:0)

尝试了以上建议,但它们对我没有用。对我有用的是先构建为Generic iOS Device,然后在我的物理设备iPhone6上运行它。

但是,我仍然无法在模拟器上运行它。此处的工作是在Build Active Architecture Only - Debug中将NO更改为Pod Project Build Settings

希望这对某人有帮助。

答案 24 :(得分:0)

这里没有任何东西适合我,但是后来我发现了一些有用的东西。

当我在Xcode的Project Navigator中单击我的项目,然后选择 Info 时,我查看了 Configurations 部分,发现只有一个 Release 配置,而我的应用没有 Debug 配置。

为了使Firebase正常工作,我去了Project Navigator中的 Pods ,然后在 Configurations 部分下删除了 Debug 组态。现在它构建良好。希望这会对别人有所帮助。

答案 25 :(得分:0)

只需重新启动xcode并运行您的项目即可。

答案 26 :(得分:0)

今天这发生在我身上,我只是想不通为什么,因为那天晚上我关闭文件时,一切都非常完美。我使用最近的项目菜单打开了文件,并遇到了这个问题。然后我决定检查一下,Xcode打开了错误的文件。它没有使用Pod打开工作区文件,而是打开了Xcode项目。

一旦打开工作区,它就不会出现错误,并且所有Pod都表现良好。我肯定你们都比我更有经验,但是我只是想把那扔在那里。

答案 27 :(得分:-2)

我有完全相同的问题

您可以在打开Xcode的情况下重新安装pod 或者你的pods文件不允许和覆盖

打开工作区,删除&#34; Pods&#34;夹。 退出X-Code 打开终端&#34; Utilities&#34; 您可以在&#34;应用程序&#34; 使用cd ...转到项目文件夹 使用&#34; pod install&#34;重新安装pods。

那应该解决它。