Cocoa Pods错误 ld: library not found for -lPods

8

我从cocoa pods得到了一个我从未见过的错误。我已经使用几个依赖项正常工作。最近,我通过pods添加了TestFlightSDK作为依赖项,但我无法存档该项目。它可以在设备上构建,但拒绝进行存档。有其他人遇到这个问题吗?

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

我的库搜索路径看起来像这样(针对调试和发布均适用):

$(SRCROOT)  recursive
$(PODS_ROOT)  recursive
$(inherited)   recursive

2
当我错误地打开了.xcodeproj而不是带有Pod Targets的.xcworkspace时,我遇到了这个错误。 - Paweł Brewczynski
当我添加了一个新的配置(即除Debug/Release之外的其他内容)时,出现了这个错误。我不得不运行pod install来更新pod文件。 - Nick Merrill
5个回答

15

好的,我找到了答案(对我有用),使用了这个帖子中的一些建议。

实际上,我注意到了一个不同的警告。

Pods was rejected as an implicit dependency for 'libPods.a' because its
architectures 'armv7 armv7s' didn't contain all required architectures
'armv7 armv7s arm64'

这实际上与Pods目标没有正确的架构有关。结果证明这是一个xCode的bug。在我的Pods目标中,我选择了所有正确的架构,包括armv7、armv7s和arm64。

解决方案:

  1. Update cocoapods to the newest version that supports 64 arch.

    sudo gem update cocoapods
    
  2. Delete all Valid Architectures and do a project clean (which fails alot..)

  3. Re-Add the architectures that you just removed and voilà!

1
如果我很糟糕,那么@Murphy就更糟糕了 :) - theLastNightTrain
1
@theLastNightTrain 作为法国人,我忍不住要修正一下口音 :) - Murphy
我会一点法语,但是发音还是有些困难 :) - theLastNightTrain

1
我的问题是旧版cocoa pods集成。必须删除“/Frameworks”文件夹中的pod-.a文件和“/Pods”中的pod-.xcconfig。

-> 运行'pod install'

一切正常


就是这样!当其他方法都不起作用时,这个方法让它工作了。 - jcesarmobile

0
如果这个问题属于库,您可以通过选择目标,然后进入“Build Phases”中的“Link Binary With Libraries”,并删除该库的“.a”文件来解决此问题。之后进行清理和构建。
希望这可以帮助到您。

0

另一个解决方案是,如果您使用新目标更新了您的Pods,您需要检查libpods.a文件是否被删除,系统是否找不到它。请确保在常规信息中的链接框架和库中包含libpods(您更改版本、捆绑标识符和构建的位置)。


0
在我的情况下,问题出在 Scheme 上。
  • 前往 产品 -> Scheme -> 编辑 Scheme
  • 点击构建(Build)
  • 添加 Pods 静态库,并确保它在列表顶部
  • 清理并重新构建

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