86

通过“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。

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

4

18 回答 18

169

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

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

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

打开此项目后,您会注意到您有两个子项目。一个是您的项目,另一个是 Pods 项目。

于 2016-11-02T05:28:53.747 回答
41

未找到框架

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

这有两个主要原因

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

  2. Build Settings中的Build Active Architecture Only设置为Yes

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

主项目截图 将仅构建活动架构设置为否

Pod 项目截图 在此处输入图像描述

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

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

于 2017-09-22T06:42:08.857 回答
18

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

最后尝试以下步骤

Projetc->管理方案->选中复选框“Pods-MyProjectName”

并获得成功。

于 2016-12-19T11:19:47.960 回答
15

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

听起来您的工作区有些东西处于糟糕的状态。产品 -> 清洁有帮助吗?删除派生数据和 ModuleCache(Xcode -> 首选项 -> 位置 -> 派生数据)怎么样?

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

于 2016-11-01T15:47:43.753 回答
6
其作品
1.在目录中选择你的项目
2.选择一般
3.将“GoogleToolboxForMac.framework”添加到链接的“框架和库”中
于 2017-11-17T04:31:26.143 回答
5

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

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

于 2017-02-21T15:05:54.363 回答
2

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

于 2018-08-21T07:08:17.457 回答
1

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

你的项目>你的目标> 向下滚动到链接框架和库并检查库条目是否变暗:

XCode 链接框架和库屏幕截图

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

于 2018-11-09T10:53:30.630 回答
1

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

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

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

也许有人会从中受益。

于 2018-03-13T10:14:47.907 回答
0

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

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

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

于 2020-07-08T09:17:41.783 回答
0

工作解决方案是

  • GoogleToolboxForMa在 xcodeproj 中搜索
  • 从构建配置中删除所有引用
于 2021-03-01T05:49:20.123 回答
0

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

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

或者只是在finder中打开文件

于 2017-11-05T19:32:14.950 回答
0

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

于 2018-10-03T07:10:40.670 回答
0

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

于 2016-12-20T13:53:36.823 回答
0

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

于 2018-03-06T13:44:37.260 回答
0

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

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

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

于 2018-10-10T12:25:21.713 回答
-1

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
于 2019-08-02T07:21:49.250 回答
-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
于 2017-02-22T10:35:11.873 回答