【问题标题】:Error: Could not build Objective-C module 'Firebase'错误:无法构建 Objective-C 模块“Firebase”
【发布时间】:2017-06-02 06:29:19
【问题描述】:

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

无法构建 Objective-C 模块“Firebase”

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

【问题讨论】:

    标签: firebase swift3 xcode8 ios10


    【解决方案1】:

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

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

    【讨论】:

    • 我没有Xcode文件夹我~/Library/Developer
    • @DimitrisBouzikas 非常感谢!它在~/User/ME/Library/... 下,图书馆文件夹被隐藏了。 (使用 Shift+cmd+(dot) 使其可见)
    • 对于以后的读者来说,有一个电脑和一个用户的library文件夹,大部分时间在用户一个
    • 非常感谢,您节省了我的时间! xCode v12
    • stackoverflow.com/a/28433526/7856586 如果找不到 DerivedData 文件夹
    【解决方案2】:

    Build ( + B) 为我工作。

    【讨论】:

    • 在我应用第一个答案后为我工作。还必须将 FIRApp.configure() 更改为 FirebaseApp.configure()
    • 为我工作,而无需应用 Dimitris Bouzikas 的答案,我正在为那些做同样事情的人将 firebase 添加到现有项目中
    • 我尝试了 Dimitri 的解决方案,但没有奏效,最终丢失了必要的文件,此解决方案确实解决了问题
    • @MarioRojas 你能确定什么是必要的文件吗?研究一下 Pod 的工作原理。
    【解决方案3】:

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

    在 Xcode 上:

    Product->Scheme->FirebaseCore.
    

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

    【讨论】:

    • 太棒了我的朋友,你帮助了我,谢谢。从过去 4 天开始一​​直在寻找这个。谢谢。伙计们,它的作品!!!
    • 这对我也有用! (我还在安装 Pod 后使用“打开 myproject.xcworkspace”重新启动 Xcode,以防万一)
    • 当我将方案切换回我的应用方案时,这不再有效。有人可以解释一下吗?
    【解决方案4】:

    这可能会解决您的问题:

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

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

    3. 清理并构建项目。

    如果仍然存在错误:

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

    1. 将方案更改为 Firebase 并构建(Command + B)。

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

    【讨论】:

    • 以上步骤没有解决我的问题,请帮助我。
    • 请尝试其他答案。您的情况可能会有所不同。
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

      第 1 步 - 关闭 Xcode

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

      ~/Library/Developer/Xcode/DerivedData

      第 3 步 - 打开您的 .xcworkspace

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

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

      确保您已打开 .xcworkspace 文件

      【讨论】:

      • 这是在 Ionic 3 应用程序上使用 Xcode 9.4 对我有用的唯一答案。
      【解决方案7】:

      'pod deintegrate' 然后'pod install' 为我工作。

      【讨论】:

      • 尝试了许多其他解决方案。但这一个奏效了。真的很有帮助。
      【解决方案8】:

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

      我在 XCode 中选择了以下框架 -> 除了我的目标项目之外管理方案

      在 Xcode 中:

      Product-> Scheme-> FirebaseCore
      Product -> Scheme -> nanopb
      Product -> Scheme -> GoogleToolBoxforMac 
      

      【讨论】:

        【解决方案9】:

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

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

        希望这对某人有所帮助。

        【讨论】:

        • 谢谢@marceh,这对我有帮助。尝试上述步骤后,它没有工作。
        【解决方案10】:

        这发生在我身上,因为我安装了 Firebase CocoaPods,但我没有通过 <projectName>.xcworkspace 文件重新打开它。 所以我的工作是:

        • 我退出 Xcode
        • 点击项目的<projectName>.xcworkspace文件打开
        • 然后我可以在我的项目中使用“import Firebase”。

        【讨论】:

          【解决方案11】:

          我最近在使用 Xcode 12 时遇到了这个问题。我发现删除有效架构构建设置 (VALID_ARCHS) 解决了这个问题。

          来自Xcode 12 发行说明:

          构建设置编辑器不再包含有效架构构建设置 (VALID_ARCHS),并且不鼓励使用它。相反,有一个新的排除架构构建设置 (EXCLUDED_ARCHS)。如果项目包含 VALID_ARCHS,则该设置将显示在 Build Settings 编辑器的 User-Defined 部分中。 (15145028)

          【讨论】:

            【解决方案12】:

            你可以试试看my answer here

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

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

            【讨论】:

              【解决方案13】:

              我试过这个(退出 Xcode、删除所有临时文件、重新安装 pod 等),但没有成功。起作用的只是在pod install 之后构建我的项目(command + b)。什么都行!

              【讨论】:

                【解决方案14】:

                这对我有用:

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

                【讨论】:

                  【解决方案15】:

                  我在Edit Scheme... > Build 下禁用了Find Implicit Dependencies 以加快构建过程。

                  重新启用它可以解决问题。

                  【讨论】:

                  • Product => Edit Scheme... 快捷键是 command +
                  【解决方案16】:

                  确保您正在使用与 pod 文件在同一目录中创建的 工作区文件

                  【讨论】:

                    【解决方案17】:

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

                    • 点击你的 Pod 项目(蓝色 Pod)->
                    • 点击全部并构建设置 ->
                    • 排除的架构 ->
                    • 在调试和发布中添加“arm64” ->
                    • 在左侧设置任何 SDK ->
                    • 在您的主项目文件夹上也这样做 ->
                    • 尽你所能

                    【讨论】:

                    • 这是唯一对我有用的解决方案。谢谢!
                    【解决方案18】:

                    当我打开白色工作区而不是蓝色工作区时,它对我有用。你按下桌面上的文件,然后按下白色文件。

                    文件外观的图像:

                    【讨论】:

                      【解决方案19】:

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

                      一旦我打开工作区,它就没有错误并且所有的 pod 都在运行。我相信你们都比我更有经验,但我只是想把它扔在那里。

                      【讨论】:

                        【解决方案20】:

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

                        【讨论】:

                          【解决方案21】:

                          这里没有什么对我有用,但后来我想出了一些有用的东西。

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

                          为了让 Firebase 正常工作,我去了 Project Navigator 中的 Pods,并在 Configurations 部分下删除了 Debug配置。现在它构建得很好。希望这对其他人有帮助。

                          【讨论】:

                            【解决方案22】:

                            经过 2 天的搜索和尝试这篇文章中提出的每一个步骤,最终我可以解决问题。以上方法都没有解决我的问题,但这个:

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

                            简单而轻松地错误消失了!

                            【讨论】:

                              【解决方案23】:

                              解决方案很简单,因为我在 pod install :D 后没有从 .xcworkspace 打开项目,我得到了同样的错误。 我错误地从旧的 .xcodeproj 文件中打开它。 就是这样,哈哈

                              【讨论】:

                                【解决方案24】:

                                以上解决方案都不适合我。我发现问题是我在 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

                                【讨论】:

                                  【解决方案25】:

                                  只需转到 Pod 目标 并在 Excluded Architectures

                                  中设置 arm64

                                  【讨论】:

                                    【解决方案26】:

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

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

                                    从项目中排除 arm64

                                    将此代码添加到 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
                                    

                                    【讨论】:

                                      【解决方案27】:

                                      这对我有用:

                                      • rm -rf project.xcworkspace
                                      • rm -rf ~/Library/Developer/Xcode/DerivedData
                                      • rm -rf Podfile.lock
                                      • 吊舱安装

                                      /!\ 打开 project.xcworkspace 而不是你的旧文件

                                      【讨论】:

                                        【解决方案28】:

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

                                        【讨论】:

                                          【解决方案29】:

                                          我也遇到了同样的问题

                                          您可能会在打开 Xcode 的情况下重新安装 pod 否则您的 pods 文件将不允许并覆盖

                                          打开工作区后,删除“Pods”文件夹。 退出 X-Code 在“实用程序”中打开终端 您可以在“应用程序”中找到它 使用 cd ... 转到您的项目文件夹 使用“pod install”重新安装 pod。

                                          这应该可以解决它。

                                          【讨论】:

                                            猜你喜欢
                                            • 2018-07-21
                                            • 2018-05-25
                                            • 2020-01-10
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2017-06-29
                                            相关资源
                                            最近更新 更多