库找不到-lPods

归档项目时出错。 这是我的环境。

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

项目部署目标是:

IPHONEOS_DEPLOYMENT_TARGET 3.2 

错误显示:

 ld: library not found for -lPods clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我想Pods是我用来pipe理XCode项目依赖关系的CocoaPods。 https://github.com/CocoaPods/CocoaPods

这是我的Podfile

 platform :ios dependency 'libPusher', '1.1' 

我不确定错误是什么意思?

你打开工作区(这是由CocoaPods生成)而不是xcodeproj?

我通过使用分隔应用程序和Podfile中的testing目标

 target :App do … end target :AppTests do … end 

这导致了两个新产品libPods-App.alibPods-AppTests.a ,他们使以前的产品libPods.a过时。 我不得不从这两个目标的Build Phasesconfiguration中的Link Binary With Libraries部分删除该产品。

我今天碰到类似的问题。

  1. 我build立了一个新的项目
  2. 我安装了cocoa豆荚
  3. 我创build了一个新的configurationPreview以及现有的DebugRelease
  4. 现在编译这个新的Previewconfiguration时,编译器将无法链接Pod并给我这个消息:

     ld: library not found for -lPods 

解决scheme:

我所要做的就是跑步

  pod install 

再次,因此configuration新的Previewconfigurationcocoapods。 它更新了我的项目,工作区和Pod的项目文件,问题消失了

确保您打开.xcworkspace ,而不是.xcodeproj

不是一个解决scheme为我工作,这是真的难以忍受,有一个文件libpods.a (这是红色)我删除它,一切工作正常! 给我欢呼;)

我已经在Podfile为不同的目标分割了我的pod列表,例如:

 target :ABC do pod 'KissXML', '~> 5.0' pod 'libPhoneNumber-iOS', '~> 0.7.2' end target :ABCTests do pod 'OCMock', '~> 2.2.1', :inhibit_warnings => true end 

并跑了一个pod install

这创build了一个新的库libPods-ABC.a我的二进制文件必须链接到。 但这个错误是它并没有删除以前的库,即libPods.a

解决scheme:从Build Phases Link Binary With Libraries Build Phases中删除库libPods.a

如果你在cocoapods v25 / Xcode 5上遇到这个问题

Pods Xcode项目现在将Debugconfiguration中的ONLY_ACTIVE_ARCH构build设置设置为YES。 你将不得不在你的项目/目标设置相同,否则构build将失败。

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250

更新确保你有最新的gem/cocoa豆

  • gem更新系统
  • gem更新cocoapods

您将需要使用Pod Install重build项目来重build项目。

如果Xcode在链接时抱怨,比如找不到-lPods的库,它不会检测到隐式的依赖关系。

转到Product> Edit Scheme点击Build添加Pods静态库,并确保它在列表顶部清理并再次构build如果这样做不起作用,请validation您要包含的规范的源是从github拉。 通过查看/ Pods /来执行此操作。 如果它是空的(不应该是),请validation〜/ .cocoapods / master //。podspec在其中包含正确的git集线器URL。 如果仍然不起作用,请检查您的XCode构build位置设置。 转到首选项 – >位置 – >派生数据 – >高级,并将生成位置设置为“相对于工作区”。

http://docs.cocoapods.org/guides/getting_started.html

我有一个旧的libPod.a文件指定(可能是由我改变目标造成的)。

项目设置 – > 构build阶段 – > 与库链接二进制文件

通常,cocoapods只包含一个库,比如libPods-target.a或者libPods.a 。 我通过删除重复来解决它。

当我编辑Podfile添加我以前没有使用目标的目标时,我遇到了同样的问题。

Podfile

 target 'xxxx' do pod 'xyz' pod 'abc' end 

在奇怪的发现后,我发现在目标属性>>常规选项卡>>链接的框架和库部分,有新的libPods-xxxx.a和旧的libPods.a

我刚刚删除了libPods.a,一切正常。

CocoaPods在GitHub上的维基在他们的常见问题中有答案 :

  • 转到Product > Edit Scheme
  • 点击Build
  • 添加Pods静态库,并确保它在列表的顶部
  • 清理并重新构build
  • 如果这不起作用,请确认您尝试包含的规范的源已经从github中提取。 通过查找<Project Dir>/Pods/<Name of spec you are trying to include> 。 如果它是空的(不应该是),请validation~/.cocoapods/master/<spec>/<spec>.podspec在其中包含正确的github url。
  • 如果仍然不起作用,请检查您的XCode构build位置设置。 转到Preferences -> Locations -> Derived Data -> Advanced ,并将生成位置设置为“相对于工作区”。

屏幕截图

在所有的豆荚中使用ONLY_ACTIVE_ARCH = NO解决了我的问题。 为了使这个持久化,我添加了一个post_install钩子到我的Podfile:

 post_install do |installer_representation| installer_representation.project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end end end 

pod install ,你就完成了。

我把这个项目从“合作伙伴”重命名为“NBSelector”。

重命名该项目后,出现“Library for libPods-Partners”错误。 Xcode试图链接到旧的Partners.a文件。 如果您在重命名后安装了pod,请将其删除。

在这里输入图像说明

您是否创build“分发”或类似configuration来制作Ad-Hoc和App Store档案? 像许多其他人一样,我遵循苹果的build议,并将其命名为“发布”configuration,称之为“发布”,并为其设置不同的签名规则。 那么,也许这是一个build议,然后他们介绍计划和组织者中的“分发”选项,无论如何,我刚才从它之前。

然后我也有与Pods相同的问题。 debugging时一切正常,但链接错误导致归档失败。 试过这个后,我把原来的项目的存档configuration从'Distribution'改为'Release',连接错误消失了。

然而,档案没有出现在组织者,虽然我可以find它在文件系统,但它有0大小。

解决所有这些问题的最后一步是将“释放”configuration的“跳过安装”设置更改为“否”。 请注意,您必须仅为您的主项目执行此操作,而不是为Pods项目执行此操作。 因为每次运行“pod安装”时都会生成,所以最好不要使用Pods项目。

更新刚刚从CocoaPods开发人员得到的答案它似乎并没有为我工作,因为我有Podsconfiguration正确设置。 但它可以帮助别人。

在我的情况下,问题是Xcode的派生数据位置设置为“传统”选项。 CocoaPods目标(libPods.a)正在被正确地构build,但Xcode正在寻找错误的地方。

切换到“唯一”(默认)解决了这个问题。 您可以通过转到“首选项”>“位置”并单击“高级…”button来完成此操作。

只有在“Pods / build / Debug-iphonesimulator”中添加“库searchpath”(在“MyProject”的生成设置中)才能工作(使用模拟器时)。

从这里得到它: https : //github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

如果您正在为iOS7和Xcode5存档,并且遇到这些错误,请参阅此链接。 看起来苹果正在放弃cocoa豆荚需要的架构https://github.com/CocoaPods/CocoaPods/pull/1352

我发现select“查找隐式依赖关系”(产品/编辑scheme下)将解决这个问题,而不是必须添加豆荚作为目标。

我经历了这里的每一个答案,但对我来说这是非常简单的…转到目标 – >构build阶段,然后删除libPods-YourProject.a,然后再次使用“+”添加它。 不要担心图书馆是红色的,没关系。

通过以下步骤解决:

  • 更新你的cocoapods安装。 ($ [sudo] gem install cocoapods)
  • 在您的项目下重新安装依赖项。 (荚安装)
  • 清理并重build/归档。

在我的情况下, pod install在创build分发和发布scheme后解决了这个问题。

我更新cocoapods后,使用旧的cocoapod版本,它build议我更新我安装的pod,因为重大更新,因为我更新很久以后。 我更新它,新版本豆荚更新正常。 但之后,我得到了类似library not found for -lPods-xxxprojectName-xxxxxpodName的错误library not found for -lPods-xxxprojectName-xxxxxpodName

在尝试了很多这样的答案之后,非我的工作。 然后我去了我的项目设置,发现豆荚path是在Other Linker Flag

检查您的Manage Schemes是否有正确的pod名称,并在“ Other Linker Flag进行比较,如果不相似,则更改它

旧的podpath是-l"lPods-xxxprojectName-xxxxxpodName"

但新的豆荚只是xxxxxpodName所以我用下面的新的replaceOther Linker Flag

更改为podpath-l"xxxxxpodName" ,它的工作。

我不知道这背后的完美原因,但可能是这个帮助一些。

归档提交时,我遇到了同样的问题。 关于这个问题的讨论可以在这里find: https : //github.com/CocoaPods/CocoaPods/issues/155

总之,有两种方法适用于我:

  1. 将“首选项 – >位置 – >高级”设置为“自定义(相对于工作区)”
  2. 将Podfile设置为- platform :ios, :deployment_target => "5.0"

在iOS 7中使用Xcode 5

这是我坚持了一个小时后所做的。 从“生成设置”>“有效体系结构”中删除ARM64。

ADDED:另外,对于我的情况,这不是派生数据的位置。 我select了独特的build立位置。

如果您使用的是iOS7和Xcode 5,请执行以下操作:

  • select您的豆荚项目。
  • 转到“目标舱”并在“生成设置”中select“体系结构” – >“标准体系结构”(armv7,armv7s)。
  • 为您的Pods项目的每个Target执行相同操作。

我在这个线程中尝试了每个答案都无济于事。 最后通过将我的目标项目中的“Pre-Configuration构build产品path”与Pods项目中的值进行匹配来解决我的问题。 原来,他们正在build设两个不同的输出地点。 这个线程中没有其他的build议与我有关。 如果XCode提供了一个有用的错误描述(比如为什么它不能使用这个lib – 找不到文件,找不到匹配的体系结构等等),那将会很棒。

在这个问题中,如果您已经在系统中安装并更新了pod,那么您的Xcode无法findPods库。要解决此问题,请检查可能发生的以下原因:

  1. 您正在使用工作区。
  2. Pods库build立。
  3. Pods库在您的项目的产品组中被引用。
  4. 您的目标包括与框架构build阶段链接的Pods库。

尝试

link_with'YouTarget1','YouTarget2'…

我的项目工作,目标突然停止编译。 然后添加“link_with”并恢复正常。

显然,现在它只是连接到第一个目标,是什么链接说:

http://guides.cocoapods.org/syntax/podfile.html#link_with

尝试打开xcworkspace文件而不是xcodeproj文件

在我的情况下,在这个链接的常见问题解答的第四个帮助: https : //github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods

如果问题仍然存在,您可以尝试一些其他的东西。