库找不到-lPods

non_et 发布于 2019-01-01 cocoapods 最后更新 2019-01-01 22:23 141 浏览

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

  • 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是我用来管理XCode项目依赖关系的CocoaPods。 https://github.com/CocoaPods/CocoaPods 这是我的Podfile
platform :ios  
dependency 'libPusher', '1.1'
我不确定错误的含义是什么?
已邀请:

bquia

赞同来自:

将some_project.workspace文件重命名为some_project.workspace.backup并运行$ pod install。它创建了一个新的工作区文件,错误消失了。

hiure

赞同来自:

我使用了将应用程序和Podfile中的测试目标分开

target :App do
    …
end
target :AppTests do
    …
end
这导致了两个新产品libPods-App.a和libPods-AppTests.a,它们使得之前的产品libPods.a已经过时。我不得不从两个目标的Build Phases配置的Link Binary With Libraries部分中删除此产品。

nqui

赞同来自:

通过以下步骤解决了这个问题:

  • 更新您的cocoapods安装。 ($ [sudo] gem install cocoapods)
  • 在项目下重新安装依赖项。 (pod安装)
  • 清理并重新构建/存档。

adicta

赞同来自:

我遇到过同样的问题。事实证明,在我的案例中,这是一个xCode错误。我所要做的就是删除“有效拱门”,做一个干净的,重新添加它们,我很高兴。也可以尝试更新cocoapods。

reos

赞同来自:

我今天遇到了类似的问题。

  1. 我设置了一个新项目
  2. 我安装了可可豆荚
  3. 我创建了一个新配置Preview以及现有的DebugRelease
  4. 现在,在编译这个新的Preview配置时,编译器将无法与Pod链接并向我发送以下消息:
    ld: library not found for -lPods
    

解决方案: 我要做的就是奔跑
 pod install
再次,因此为新的Preview配置配置cocoapods。它更新了我的项目,工作区和Pod的项目文件,问题就消失了

dmodi

赞同来自:

我将项目重命名为“合作伙伴”中的“NBSelector”。 重命名项目后,我找不到“libPods-Partners找不到库”错误。 Xcode试图链接到旧的Partners.a文件。如果在重命名后有podInstalled,请将其删除。

enter image description here

isunt

赞同来自:

我为所有pod设置了与我的项目相同的架构和有效架构,从而解决了这个问题。所以我案例中的漏洞解决方案是:

  • 更新可可豆荚:sudo gem update cocoa pods
  • 更新pod:pod update
  • 在你的Pod中转到你的构建设置>架构,并在此处将架构和有效架构设置为与主项目中完全相同的值。

xnobis

赞同来自:

GitHub上的CocoaPods维基有the answer right in their FAQ

  • 转到Product > Edit Scheme
  • 点击Build
  • 添加Pods静态库,并确保它位于列表顶部
  • 清理并再次构建
  • 如果这不起作用,请验证您尝试包含的规范的源是否已从github中提取。通过查看<Project Dir>/Pods/<Name of spec you are trying to include>来执行此操作。如果它是空的(它不应该是),请验证~/.cocoapods/master/<spec>/<spec>.podspec中是否包含正确的github URL。
  • 如果仍然无效,请检查您的XCode构建位置设置。转到Preferences -> Locations -> Derived Data -> Advanced并将构建位置设置为“相对于工作区”。
Screen shot

cet

赞同来自:

在我的例子中,问题是Xcode的派生数据位置被设置为“遗留”选项。 CocoaPods目标(libPods.a)正在构建正确,但Xcode正在寻找错误的位置。 将其切换为“唯一”(默认)解决了问题。您可以通过转到“首选项”>“位置”并单击“高级...”按钮来执行此操作。

tiure

赞同来自:

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

gnihil

赞同来自:

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

noptio

赞同来自:

我也有,Cocoapods版本0.28.0 这里很容易解决,没有冗长的阅读:

  • 卸载Cocoapods(命令行或AppCode)
  • 擦除Podfile,Podfile.lock,Pods文件夹
    • 重新安装Cocoapods
    • 启动新创建的工作区。

mut

赞同来自:

归档提交时我遇到了同样的问题。 有关此问题的讨论,请访问:https://github.com/CocoaPods/CocoaPods/issues/155 总之,有两种方法适合我:

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

et_et

赞同来自:

如果Xcode在链接时抱怨,例如找不到-lPods的库,它不检测隐式依赖项。 转到产品>编辑方案 单击Build 添加Pods静态库,并确保它位于列表的顶部 再次清洁和建造 如果这不起作用,请验证您尝试包含的规范的源是否已从github中提取。通过查看/ Pods /来做到这一点。如果它是空的(它不应该是),请验证~/ .cocoapods / master // .podspec中是否包含正确的git hub url。 如果仍然不起作用,请检查您的XCode构建位置设置。转到首选项 - >位置 - >派生数据 - >高级,并将构建位置设置为“相对于工作区”。 http://docs.cocoapods.org/guides/getting_started.html

psed

赞同来自:

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

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,你已经完成了。

yalias

赞同来自:

我更新了cocoapod后使用了旧的cocoapod版本,它建议我更新我安装的pod,因为我在很长一段时间后更新了重大更新。我更新它,新版本pod已更新。但之后我得到了像library not found for -lPods-xxxprojectName-xxxxxpodName这样的错误 在尝试了如此多的解决方案作为这个问题的答案之后,非这个对我有用。然后我进入我的项目设置,发现pods路径发生了变化,这是在Other Linker Flag上 检查您的Manage Schemes是否有正确的广告连播名称,并在Other Linker Flag中进行比较,如果不相似则更改它 旧的pod路径是-l"lPods-xxxprojectName-xxxxxpodName" 但新的pods只有xxxxxpodName所以我用新的替换了Other Linker Flag,如下所示 更改为pod路径-l"xxxxxpodName"并且它已经工作。 我不知道背后的完美原因,但可能对某人有所帮助。

nodio

赞同来自:

在我的情况下,pod install在创建分发和发布方案后修复了问题。

a_et

赞同来自:

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

Podfile
target 'xxxx' do
pod 'xyz'
pod 'abc'
end
想知道我发现在目标属性>>常规选项卡>>链接框架和库部分下,有新的libPods-xxxx.a和旧的libPods.a 我刚刚删除了libPods.a,一切正常。

ddolor

赞同来自:

不是解决方案对我有用,这真是难以忍受,有一个文件libpods.a(红色)我删除了它,一切正常!为我干杯;)

isunt

赞同来自:

尝试 link_with'YouTarget1','YouTarget2'...... 我的项目工作,目标突然停止编译。然后添加“link_with”并恢复正常。 显然,现在它只是连接到第一个目标,链接是什么: http://guides.cocoapods.org/syntax/podfile.html#link_with

xminus

赞同来自:

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

eenim

赞同来自:

只有将“库搜索路径”(在“MyProject”的构建设置中)添加到“Pods / build / Debug-iphonesimulator”才能为我工作(使用模拟器时)。 从这里得到它: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

zomnis

赞同来自:

我厌倦了所有的答案,最后我能够通过在Xcode Build方案中添加pod库来修复它,在我能够运行它之后,试图从构建方案中删除它并且它仍然适用于我。无法弄清楚具体原因。

et_qui

赞同来自:

请务必打开.xcworkspace,而不是.xcodeproj

nsequi

赞同来自:

我遇到了一个问题,我创建了自己的.xcworkspace,这使得pods可以创建自己的(它附加到它的库的位置)。

溶液 我移动了我创建的.xcworkspace,再次运行了pod install,然后手动将我的.xcworkspace与通过打开两个工作区并将文件从一个工作区拖动到另一个工作区创建的一个pod合并。

ysunt

赞同来自:

如果您仍然遇到此问题,请尝试:

pod update
这项工作对我来说,希望这对你有所帮助。

ad_est

赞同来自:

我在这里经历了每个答案,但对我来说这简直太简单了......转到Target - > Build Phases,然后删除libPods-YourProject.a,然后使用“+”再次添加它。不要担心图书馆是红色的,这很好。

funde

赞同来自:

我发现选择“Find implicit Dependencies”(在产品/编辑方案下)将解决此问题,而不必将pod添加为目标。

psequi

赞同来自:

在本期中,如果您已经安装了&在您的系统中更新pod,然后您的Xcode无法找到Pods库。要解决此问题,请检查可能发生的以下原因:

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

inemo

赞同来自:

如果你在cocoapods v25 / Xcode 5上遇到这个问题 Pods Xcode项目现在在Debug配置中将ONLY_ACTIVE_ARCH构建设置设置为YES。您必须在项目/目标上设置相同的内容,否则构建将失败。 https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250 UPDATE 确保你有最新的宝石/ cocoapods

  • gem update system
  • gem update cocoapods
您将需要使用重建项目 Pod安装以重建项目。

iid

赞同来自:

我在target中缺少libPods.a,因此首先要做的是将其添加到链接的框架和库中。 接下来,产品 - >构建 - >分析(或者在添加libPods.a之前,如果你完全没有它) 最后在Build阶段检查你的Copy Pods资源脚本(如果它与你的第二个目标相同 - 它有时取决于Podfile及其目标)。然后你应该成功建立。

zamet

赞同来自:

我指定了一个旧的libPod.a文件(可能是由我更改目标引起的)。 项目设置 - >构建阶段 - >链接二进制文件与库 通常,cocoapods只包含一个库,例如libPods-target.alibPods.a。我通过删除副本解决了它。

et_et

赞同来自:

我试过这个帖子的每一个答案都无济于事。最后通过将目标项目中的“预配置构建产品路径”与Pods项目中的值相匹配来解决我的问题。原来他们正在建设两个不同的输出位置。此主题中的其他任何建议都与我无关。如果XCode提供了有用的错误描述(例如为什么它不能使用lib - 找不到文件,找不到匹配的架构等),那将会很棒。

eearum

赞同来自:

为了简化@ i4niac的答案: 另一个常见原因是Scheme的Build Configuration不匹配。 在我们的例子中,我们的'AppName-AppStore'方案将“Release”作为Archive Build Configuration而不是“AppStore”(对于其他人可能是另一种方式)。

znihil

赞同来自:

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

  • 选择您的Pods项目。
  • 转到目标窗格并在构建设置中,选择架构 - >标准架构(armv7,armv7s)。
  • 为您的Pods项目的每个目标执行相同的操作。

wsed

赞同来自:

我已将我的pod列表分为Podfile,用于不同的目标,例如:

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 这创建了一个新的库libPods-ABC.a,我的二进制文件必须链接到该库。但是错误是它没有删除以前的库,即libPods.a。 解决方案:从Link Binary With LibrariesBuild Phases中删除库libPods.a

hhic

赞同来自:

在iOS 7中使用Xcode 5 这是我被困一小时后所做的。从构建设置>有效体系结构中删除ARM64。 增加:另外,对于我的情况,它不是派生数据位置。我选择了独特的构建位置。

cut

赞同来自:

在我的情况下,此链接中的常见问题解答4中有助于: https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods 如果问题仍然存在,您还可以尝试其他一些方法。

noptio

赞同来自:

您是否创建了“分发”或类似配置来制作Ad-Hoc和App Store档案? 像许多其他人一样,我遵循Apple的建议并称之为“发布”配置,称为“发布”并为其设置不同的签名规则。好吧,也许这是他们在组织者中引入方案和“分发”选项之前的推荐,无论如何,我刚刚从之前获得过它。 然后我和Pods有同样的问题。调试时一切运行良好,但归档失败,链接错误。尝试此操作后,我将原始项目的存档配置从“分发”更改为“发布”,链接错误消失了。 然而,存档没有出现在Organizer中,虽然我可以在文件系统中找到它,但它有0大小。 修复所有这一切的最后一步是将“释放”配置的“跳过安装”设置更改为“否”。请注意,您必须仅为主项目执行此操作,而不是对Pods项目执行此操作。最好保留Pods项目,因为每次运行“pod install”时都会生成它。 更新 刚拿到一个answer from CocoaPods devs 它似乎对我不起作用,因为我正确设置了Pods配置。 但它可以帮助别人。