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

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'

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


当前回答

我把我的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的构建阶段。

其他回答

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

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

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

我在Podfile中通过使用将app和测试目标分开

target :App do
    …
end

target :AppTests do
    …
end

这导致了两个新产品libPods-App。a和libPods-AppTests。a,他们做了之前的产品libPods。一个过时的。我必须从两个目标的构建阶段配置的Link Binary With Libraries部分中删除此产品。

在所有pod中只使用_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安装完成。

如果你仍然遇到这个问题,试试:

pod update

已经做完了,希望这能帮到你。