找不到框架GoogleToolboxForMac


82

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

感谢您提供的任何帮助。谢谢!


2
对我一样..有人可以帮助吗?我已经整日忙于这一工作://我注意到使用同一库的较旧版本并没有使用GoogleToolboxForMac,并且效果很好:(
Santi Iglesias

从其他stackoverflow答案中,我尝试将以下所有内容添加到我的pod文件中,但仍然无法使用:pod'Google / Analytics'pod'Firebase / Core'pod'Firebase / AdMob'#试图修复GoogleToolboxForMac缺少的错误pod'Firebase / Messaging '荚'GoogleToolboxForMac /记录器'荚'GoogleToolboxForMac', '〜> 2.1'
查理塞利格曼

首先,您的Podfile的格式过旧(Q4 / 2016)。删除它并使用“ pod init”创建一个新的。如下面建议的那样,使用工作区而不是xcodeproj。
igraczech

Answers:


168

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

[!]从现在开始,请关闭任何当前的Xcode会话,并为此项目使用MyApp.xcworkspace。

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

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


40

找不到框架

使用Pod时,我们通常会遇到此问题。

这有两个主要原因

  1. 当我们打开.xcodeproj文件,而不是.xcworkspace在此提到的izaaz,尤纳斯回答

  2. 在“构建设置中将仅构建活动体系结构”设置为“”时

    这适用于项目目标以及pod项目中的所有目标

主项目截图 将仅构建活动体系结构设置为否

Pod项目截图 在此处输入图片说明

  1. 选择构建设置(主项目,pod项目都选择)
  2. 选择每个目标一个接一个
  3. 将每个目标的“构建活动体系结构”设置为“

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


有错别字吗,在#2您说“是”,但在图像上显示“否”,谢谢@Vinay Kumar
greenridinghood

#2讲述了导致问题的原因,图像是解决该问题的设置看起来如何
Vinay Kumar,

所有其他解决方案对我都不起作用:将所有Pod库的“仅将Active Active Architecture的构建”设置为NO
tamtoum1987

18

就我而言,所有集成都做得很好,并且确实尝试了很多次来删除并重新安装Pod,但是没有成功。

最后尝试以下步骤

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

并获得成功。


在模拟器中运行时出现此错误,但未在实际设备上看到此错误。
mpwhitt

这对我有用,但是在尝试构建项目之前,我也必须显式地构建pods项目。不知道为什么。
pieSquare '17

1
我这样做了,但是无法在模拟器上运行该应用程序?
Drailan John Terrible,

2
建设“豆荚,项目名”后,我能够在设备上运行的实际项目..
蒂姆·巴斯

14

GoogleToolboxForMac是Firebase / Messaging的依赖项。有关详细信息,请参见podspec。在进行“ pod更新”时,Cocoapods应该设置您的工作区以构建和链接GoogleToolboxForMac。

听起来好像您的工作区处于错误状态。产品->清洁是否有帮助?删除派生数据和ModuleCache(Xcode->首选项->位置->派生数据)怎么办?

不必要,但您也可以尝试将Pod'GoogleToolboxForMac / Logger'显式添加到Podfile中。


不,这对我不起作用...通过从工作区打开项目来工作!
Jayprakash Dubey

2
@JayprakashDubey此答案假定您是从工作区开始的。参见第一段。答案解决了导致相同症状的另一种情况。
Paul Beusterien

1
@PaulBeusterien我尝试了您在这里说的所有内容,但仍然无法构建。
Drailan John Terrible,

6
其作品
1.在目录中选择您的项目
2.选择一般
3.将“ GoogleToolboxForMac.framework”添加到链接的“ frameworks和库”中

链接库可为我明确解决。谢谢!
Liquinaut

5

通过在构建设置->搜索LIBRARY_SEARCH_PATHS中添加$(继承),可以解决此问题。

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


我应该按+,然后键入$(继承)在哪里放置$(继承)?
德拉兰·约翰

是的,您可以按+并输入$(继承),或直接双击可编辑框,然后可以输入$(继承)
TomV

这解决了我的问题!谢谢@TomV
Spettacolo83


1

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

  1. 使用.xc ...文件打开Xcode项目(cocoapods项目)。
  2. 在项目导航器中选择Pods项目(左侧的蓝色图标)。
  3. 在“目标”下,确保已选择“ Pods-ProjectName”(蓝色图标)。
  4. 导航至“构建设置”,然后设置要在其上运行项目的iOS版本的iOS部署目标。

注意:与设置相同Project->Targets->Deployment info->Deployment Target

也许有人从中受益。


1

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

您的项目>您的目标>向下滚动到“链接的框架和库”,然后检查“库”条目是否为灰色:

XCode链接框架和库屏幕快照

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


0

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



0

确保项目目标和pod的“ Build Active Architecture设置”相同。在这两种情况下都设置为NO可以解决我的问题。


0

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


0

-我在硬盘驱动器中搜索以下位置的GoogleToolboxForMac文件:/ Users / Marco / Documents / iosapps / BomRetiro / Bom Retiro / Pods / Target支持文件

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

然后为我解决打开项目usinf .xcworkspace文件的问题。


0

对于那些毕竟还有问题的人。我正在进行一项cordova项目,升级到XCode 11.5后突然出现了问题。

最终,我能够通过在项目根目录中打开pods.json文件并删除属于“ FirebaseMessaging”的“库”中的条目来解决该问题。我们没有使用它,我也不知道它是如何到达那里的。另外,我到处都将“构建设置”->“仅构建活动体系结构”更改为“否”。

之后,我再次打开.xcworkspace文件,构建过程顺利进行。



-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

不要发布整个屏幕截图,我的朋友,请仅提供内联部分。
igraczech '17

尽管行之有效,但最好是解释解决方案而不是发布屏幕截图。解决方案是在项目和Pods目标处将“仅有效拱门”更改为“否”。
伊格纳西奥·巴雷亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.