找不到-lPods库

348

当我尝试归档项目时出现了错误。这是我的环境。

  • 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'

我不确定这个错误的含义是什么?


一个问题的原因,没有任何答案涉及。在这里检查答案:https://dev59.com/wGAg5IYBdhLWcg3wBXER#29497314 - hasan
42个回答

27

CocoaPods的GitHub Wiki在其常见问题解答中直接提供了答案

  • 进入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


6
我也遇到了这个问题,但是我好像无法执行这些步骤。我卡在“添加Pods静态库并确保它位于列表顶部”。当我点击将其添加到Build scheme时,静态库没有显示出来。有什么建议吗? - Bay Phillips
@BayPhillips 关闭当前项目,打开在您的项目文件夹中创建的 .xcworkspace 文件。然后静态库就会出现。 - junho

12
我将项目从“Partners”重命名为“NBSelector”。
重命名后,我遇到了“无法找到libPods-Partners库”的错误。Xcode尝试链接旧的Partners.a文件。如果您在重命名后已经安装了Pod,请删除该文件。 输入图像描述

完美的解决方案,解决了我的问题 :) 但是如果您想使用它,需要再次添加Pods。 - satheesh

12

对我来说,将所有的Pods中的ONLY_ACTIVE_ARCH设置为NO解决了问题。为了使其持久化,我在我的Podfile中添加了一个post_install hook:

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 完成即可。


8

在我的情况下,问题是 Xcode 的导出数据位置被设置为“传统”选项。 CocoaPods 目标(libPods.a)正在正确构建,但 Xcode 却在错误的位置查找它。

将其切换为“唯一”(默认值)即可解决此问题。您可以通过转到“偏好设置”>“位置”,然后单击“高级...”按钮来执行此操作。


但是我现在处于一种必须使用“Legacy”的情况下,继续寻找其他解决方案... - CocoaBob

8
你是否创建了“分发”或类似的配置以制作Ad-Hoc和App Store存档?像许多其他人一样,我遵循了苹果的建议,将“发布”配置称为“分发”,并设置了不同的签名规则。也许这是在引入方案和组织器中的“分发”选项之前的建议,但无论如何,我之前就已经这样做了。
然后我遇到了与Pods相同的问题。在调试时一切正常,但在存档时失败了。尝试了这个和那个后,我将原始项目的存档配置从“分发”更改为“发布”,链接错误消失了。
然而,存档没有出现在组织器中,尽管我可以在文件系统中找到它,但它大小为0。
解决所有这些问题的最后一步是将“发布”配置的“跳过安装”设置更改为“否”。请注意,您只需要为主项目执行此操作,而不需要为Pods项目执行此操作。最好保持Pods项目不变,因为每次运行'pod install'时都会生成它。

更新 刚刚收到CocoaPods开发人员的回复 对我来说似乎没有用,因为我的Pods配置已经正确设置了。 但它可能会帮助其他人。


5

5

我打开了工作区,但是出现了相同的错误。

仅构建活动结构设置为

解决了我的问题。


有帮助。谢谢你。不知怎地,只有“调试”设置为“是”,而其他配置都为“否”,我已经看到了所有构建的错误,除了调试。 - Pavel Yakimenko
这只对我有帮助。像“打开 .workspace”这样的答案太无聊了。我认为开发人员应该首先彻底检查安装指南文档。 - KoreanXcodeWorker

4
我浏览了这里的每个答案,但对我来说非常简单...进入Target->Build Phases,然后删除libPods-YourProject.a,再使用“+”添加它。不用担心库是红色的,这没关系。

尝试了所有方法,但只有这个解决方案有效! - hiew1

4

4
我发现选择“查找隐式依赖项”(在产品/编辑方案下)可以解决此问题,而无需将Pods添加为目标。

再次运行pod install可以在按照这些步骤后有所帮助。 - StackRunner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接