【问题标题】:Framework not found GoogleToolboxForMac找不到框架 GoogleToolboxForMac
【发布时间】:2017-03-14 12:17:55
【问题描述】:

通过“pod update”更新 Firebase 后,出现如下错误:

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: framework not found GoogleToolboxForMac
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的 Podfile:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'BB' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BB

  target 'BBTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BBUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

有人知道这个错误吗?

我在寻找 GoogleToolboxForMac 和 Firebase 的关系,但我只得到了一点信息。

仅供参考,我使用 Swift 2.3 和 Firebase 3.8.0。

如果您能提供任何帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 我也一样..有人可以帮忙吗?我整天都在研究这个:/我注意到使用同一库的旧版本并没有使用 GoogleToolboxForMac 并且可以完美运行:(
  • 从其他 stackoverflow 答案中,我尝试将以下所有内容添加到我的 pod 文件中,但仍然无法正常工作: pod 'Google/Analytics' pod 'Firebase/Core' pod 'Firebase/AdMob' # Trying to fix GoogleToolboxForMac 缺少错误 pod 'Firebase/Messaging' pod 'GoogleToolboxForMac/Logger' pod 'GoogleToolboxForMac', '~> 2.1'
  • 首先,您的 Podfile 的格式是旧的(Q4/2016)。删除它并使用“pod init”创建新的。按照下面的建议使用工作区而不是 xcodeproj。

标签: ios firebase swift2 cocoapods google-toolbox-for-mac


【解决方案1】:

GoogleToolboxForMac 是 Firebase/Messaging 的依赖项。 podspec 中的详细信息。在进行“pod update”时,Cocoapods 应该设置您的工作区来构建和链接 GoogleToolboxForMac。

听起来您的工作空间有些问题。产品 -> 清洁有帮助吗?删除 Derived Data 和 ModuleCache(Xcode -> Preferences -> Locations -> Derived Data)怎么样?

这不是必需的,但您也可以尝试将 pod 'GoogleToolboxForMac/Logger' 显式添加到您的 Podfile。

【讨论】:

  • 不,这对我不起作用...通过从工作区打开项目有效!
  • @JayprakashDubey 此答案假定您从工作区开始。见第一段。答案解决了导致相同症状的另一种情况。
  • @PaulBeusterien 我尝试了你在这里所说的一切,但仍然无法构建。
【解决方案2】:

我有同样的错误。安装 pod 后,您将看到以下消息。

[!] 请关闭所有当前的 Xcode 会话并使用 MyApp.xcworkspace 从此项目开始。

我第一次没有注意到这一点,并尝试使用常规 xcodeproj 文件构建项目。看到这条消息后,我打开了正确的项目,它运行良好。

打开此项目后,您会发现有两个子项目。一个是您的项目,另一个是 Pods 项目。

【讨论】:

    【解决方案3】:

    在我的情况下,所有集成都做得很好,并且尝试了很多时间来删除和重新安装 pod,但没有成功。

    最后尝试以下步骤

    Projetc->Manage Schemes -> 选中复选框“Pods-MyProjectName”

    并获得成功。

    【讨论】:

    • 我在模拟器中运行时遇到此错误,但在实际设备上没有。
    • 这对我有用,但在尝试构建我的项目之前,我也必须明确构建 pods 项目。不知道为什么。
    • 我这样做了,但我无法在我的模拟器上运行应用程序?
    • 构建“Pods-ProjectName”后,我能够在我的设备上运行真正的项目..
    【解决方案4】:

    在完成 pod install 后关闭我试图构建的项目,然后打开 .workspace,然后一切都构建完美。

    【讨论】:

      【解决方案5】:

      已通过在 Build Settings -> 搜索 LIBRARY_SEARCH_PATHS 中添加 $(inherited) 来解决此问题。

      这是可以理解的,因为在为项目所依赖的最新版本库更新 pod 文件时,调试输出会告诉您需要在哪里添加所有 $(inherited) 标志: LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS

      【讨论】:

      • 我应该按 + 然后输入 $(inherited) 在哪里放置 $(inherited)?
      • 是的,你可以按+并输入$(inherited)或者直接双击可编辑框然后输入$(inherited)
      • 这解决了我的问题!谢谢@TomV
      【解决方案6】:
          Friends, you must be confused with the exact result, as i was. So, i feel to share the 
      screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error.
      
          See the attached screenshot.
          Screen Shot 1, Screen Shot 2, Screen Shot 3
          [Select Pods][1]
          [Select Targets in the pod][2]
          [Change flag to No][3]
      
      
        [1]: https://i.stack.imgur.com/E7mjX.png
        [2]: https://i.stack.imgur.com/wCwET.png
        [3]: https://i.stack.imgur.com/KVGKM.png
      

      【讨论】:

      • 不要发布完整的截图,请只提供内嵌部分,我的朋友。
      • 这很有效,尽管最好解释解决方案而不是发布屏幕截图。解决方案是在项目和 Pod 目标处将 Valid Arch Only 更改为“No”。
      【解决方案7】:

      找不到框架

      在使用 Pods 时,我们通常会遇到这个问题。

      这主要有两个原因

      1. 当我们打开 .xcodeproj 文件而不是 izaaz-yunus 在此 Answer 中提到的 .xcworkspace

      2. Build Active Architecture OnlyBuild Settings中设置为Yes

        这适用于项目目标,也适用于 pod 项目中的所有目标

      主项目截图

      Pod 项目截图

      1. 选择构建设置(主项目、pod 项目两者)
      2. 逐个选择目标
      3. 为每个目标将 Build Active Architectures 设置为 No

      最后清理并重建您的项目。

      【讨论】:

      • 是否有错字,在#2 你说“是”但在图像显示“否”,谢谢@Vinay Kumar
      • #2 说明导致问题的原因,图像是要解决问题的设置应如何显示
      • 所有其他解决方案都对我不起作用,例如:将所有 pod 库的 Build Active Architecture Only 设置为 NO
      【解决方案8】:

      在您的项目目标中打开 your-project.xcworkspace。

      1)打开终端 -> 2) $cd /project_destination -> 3) $open your-project.xcworkspace

      或者直接在finder中打开文件

      【讨论】:

        【解决方案9】:
        其作品 1.在目录中选择你的项目 2.选择一般 3. 将“GoogleToolboxForMac.framework”添加到链接的“框架和库”中

        【讨论】:

        • 链接库为我明确解决了这个问题。谢谢!
        【解决方案10】:

        确保项目目标和 pod 的“构建活动架构设置”相同。在这两种情况下设置 NO 解决了我的问题。

        【讨论】:

          【解决方案11】:

          当我尝试在我的设备上运行它时,我遇到了同样的问题。在模拟器上它工作正常。我尝试了上述一些方法,但它对我不起作用。我检查了我正在处理.xcworkspace 而不是.xcodeproj 文件,所以我尝试了这个。请按照以下步骤:

          1. 使用 .xc... 文件打开 Xcode 项目(cocoapods 项目)。
          2. 在项目导航器中选择 Pods 项目(左侧的蓝色图标)。
          3. 在 Targets 下,确保选中 Pods-ProjectName(蓝色图标)。
          4. 导航到构建设置并设置 iOS 部署目标,您将在哪个 iOS 版本上运行项目。

          注意:和你在Project->Targets->Deployment info->Deployment Target中设置的一样。

          也许有人会从中受益。

          【讨论】:

            【解决方案12】:

            转到:target -> Build Settings -> Other Linker Flags -> remove framework "GoogleToolboxforMAC" 并构建项目。

            【讨论】:

              【解决方案13】:

              我的问题是我有一个 /bin/sh 脚本复制了不存在的特定 Pod。这是其中之一。删除脚本解决了构建问题。

              【讨论】:

                【解决方案14】:

                -我在硬盘中搜索 GoogleToolboxForMac 文件,位于: /Users/Marco/Documents/iosapps/BomRetiro/Bom Retiro/Pods/Target 支持文件

                • 然后我将文件复制到此文件夹: /Users/YourHomeFolder/Library/Developer/Xcode/DerivedData/Bom_Retiro-bsfjbazzzuwmuidqurdmjvdtnnsb/Build/Products

                然后对我来说解决了打开项目 usinf .xcworkspace 文件。

                【讨论】:

                  【解决方案15】:

                  如果您遇到同样的错误,请在 XCode 中转到:

                  你的项目 > 你的目标 > 向下滚动到Linked Framework and Libraries并检查Library条目是否变暗:

                  如果是这样,请删除并重新添加。就我而言,我有重复的条目,其中一个变暗(当 XCode 在磁盘上找不到它们时)。

                  【讨论】:

                    【解决方案16】:

                    Swift 5 简单答案

                    Shift+Alt+Cmd+K  //Clean the project and Run again! 
                    //if not work restart Xcode and again clean it 
                    //Its will work happy coding
                    

                    【讨论】:

                      【解决方案17】:

                      对于那些在这一切之后仍然有问题的人。 我正在做一个cordova项目,升级到XCode 11.5后突然出现了这个问题。

                      最后我能够通过打开项目根目录中的 pods.json 文件并删除属于“FirebaseMessaging”的“libraries”中的条目来解决它。 我们没有使用它,我不知道它是如何到达那里的。 此外,我已将“构建设置”->“仅构建活动架构”更改为“否”。

                      之后我再次打开 .xcworkspace 文件,构建运行通过。

                      【讨论】:

                        【解决方案18】:

                        有效的解决方案是

                        • 在 xcodeproj 中搜索 GoogleToolboxForMa
                        • 从构建配置中删除所有引用

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2017-11-03
                          • 2016-01-13
                          • 1970-01-01
                          • 1970-01-01
                          • 2021-09-14
                          • 2016-02-09
                          • 2019-02-08
                          • 2019-03-30
                          相关资源
                          最近更新 更多