我存档一个项目时出错了。这就是我的环境。

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'

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


当前回答

我尝试了这篇文章中的每一个答案,但都无济于事。最终通过匹配我的目标项目中的“Pre-Configuration Build Products Path”与Pods项目中的值来解决我的问题。原来他们在建造两个不同的输出位置。这篇文章中的其他建议都与我无关。如果XCode给出一个有用的错误描述(比如为什么它不能使用lib - File Not Found, No matching architecture Found等等),那就太好了。

其他回答

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

总之,有两种方法适合我:

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

我把我的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

然后安装了吊舱

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

解决方案:删除libPods库。a来自Link Binary With Libraries的构建阶段。

我确实打开了工作区,但得到了同样的错误。

Build Active Architecture Only设置为YES

解决我的问题。

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

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

更新可可荚:sudo宝石更新可可荚 更新pod:更新pod 在你的pod中,转到你的构建设置>架构,并将这里的架构和有效架构设置为与主项目相同的值。