首页 文章

找不到-lPods的库

提问于
浏览
306

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

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

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

30 回答

  • 1

    在我的例子中,问题是Xcode的派生数据位置被设置为“遗留”选项 . CocoaPods目标(libPods.a)正在构建正确,但Xcode正在寻找错误的位置 .

    将其切换为“唯一”(默认)解决了这个问题 . 您可以通过转到“首选项”>“位置”并单击“高级...”按钮来执行此操作 .

  • 1

    如果Xcode在链接时抱怨,例如找不到-lPods的库,它不检测隐式依赖项 .

    转到产品>编辑方案单击构建添加Pods静态库,并确保它位于列表顶部清理并再次构建如果这不起作用,请验证您尝试包含的规范的源是否已从github拉出来 . 通过查看/ Pods /来做到这一点 . 如果它是空的(它不应该是),请验证〜/ .cocoapods / master // .podspec中是否包含正确的git hub url . 如果仍然不起作用,请检查您的XCode构建位置设置 . 转到首选项 - >位置 - >派生数据 - >高级,并将构建位置设置为“相对于工作区” .

    http://docs.cocoapods.org/guides/getting_started.html

  • 8

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

    pod update
    

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

  • 5

    我更新了cocoapod后使用了旧的cocoapod版本,它建议我更新我安装的pod,因为我在很长一段时间后更新了重大更新 . 我更新它,新版本pod已更新 . 但在那之后我得到了像 library not found for -lPods-xxxprojectName-xxxxxpodName 这样的错误

    在尝试了如此多的解决方案作为这个问题的答案之后,非这个对我有用 . 然后我去了我的项目设置,发现pods路径发生了变化,这是 Other Linker Flag

    Check your Manage Schemes for correct pod name and compare it in Other Linker Flag, Change it if not similar

    Old pod path was -l"lPods-xxxprojectName-xxxxxpodName"

    但是新的pods只有 xxxxxpodName 所以我用下面的新的替换 Other Linker Flag

    Changed to pod path -l"xxxxxpodName" and it's worked.

    我不知道背后的完美原因,但可能对某人有所帮助 .

  • 8

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

  • 3

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

  • 4

    在所有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 你已经完成了 .

  • 1

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

    target :App do
        …
    end
    
    target :AppTests do
        …
    end
    

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

  • 51

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

    Podfile

    target 'xxxx' do
    
    pod 'xyz'
    pod 'abc'    
    
    end
    

    在想知道我发现在目标属性>>常规选项卡>>链接框架和库部分下,有新的libPods-xxxx.a和旧的libPods.a

    我刚刚删除了libPods.a,一切正常 .

  • 4

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

  • 45

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

  • 36

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

  • 3

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

    • 选择您的Pods项目 .

    • 转到目标窗格并在构建设置中,选择架构 - >标准架构(armv7,armv7s) .

    • 对Pods项目的每个目标执行相同操作 .

  • 11

    一定要打开 .xcworkspace ,而不是 .xcodeproj

  • 27

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

  • 1

    尝试

    link_with'YouTarget1','YouTarget2'......

    我的项目工作,目标突然停止编译 . 然后添加“link_with”并恢复正常 .

    显然,现在它只是连接到第一个目标,链接是什么:

    http://guides.cocoapods.org/syntax/podfile.html#link_with

  • 44

    只有将“库搜索路径”(在“MyProject”的构建设置中)添加到“Pods / build / Debug-iphonesimulator”才能为我工作(使用模拟器时) .

    从这里得到它:https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

  • 2

    如果你在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更新确保您有最新的宝石/ cocoapods

    • gem更新系统

    • gem update cocoapods

    您将需要使用Pod Install重建项目以重建项目 .

  • 1

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

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

    • 将"Preferences -> Locations -> Advanced"设为"Custom(Relative to Workspace)"或

    • 将Podfile设置为 - platform :ios, :deployment_target => "5.0"

  • 1

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

  • 1

    我指定了一个旧的libPod.a文件(可能是由于我改变了目标) .

    Project Settings - > Build Phases - > Link Binary with Libraries

    通常,cocoapods只包含一个库,例如 libPods-target.alibPods.a . 我通过删除副本解决了它 .

  • 0

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

    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 .

    解决方案:从 Build PhasesBuild Phases 中删除库 libPods.a .

  • 63

    我将项目重命名为“合作伙伴”中的“NBSelector” .

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

    enter image description here

  • 170

    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 并将构建位置设置为"Relative to Workspace" .

    Screen shot

  • 11

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

  • 116

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

    • 您正在使用工作区 .

    • Pods库构建 .

    • Pods库在项目的产品组中引用 .

    • 您的目标包含与框架构建阶段的链接中的Pods库 .

  • 2

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

    • 我设置了一个新项目

    • 我安装了可可 beans 荚

    • 我创建了一个新配置 Preview 以及现有的 DebugRelease

    • 现在在编译这个新的 Preview 配置时,编译器将无法与Pod链接并向我发送以下消息:

    ld: library not found for -lPods
    

    解决方案:

    我要做的就是奔跑

    pod install
    

    再次,因此为新的 Preview 配置配置cocoapods . 它更新了我的项目,工作区和Pod的项目文件,问题就消失了

  • 37

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

    • 更新您的cocoapods安装 . ($ [sudo] gem install cocoapods)

    • 在项目下重新安装依赖项 . (pod安装)

    • 清理并重新构建/存档 .

  • 43

    您是否创建了“分发”或类似配置来制作Ad-Hoc和App Store档案?像许多其他人一样,我遵循Apple的建议并称之为“发布”配置,称为“发布”并为其设置不同的签名规则 . 好吧,也许这是他们在组织者中引入方案和“分发”选项之前的推荐,无论如何,我刚刚从之前获得过它 .

    然后我和Pods有同样的问题 . 调试时一切运行良好,但归档失败,链接错误 . 尝试此操作后,我将原始项目的存档配置从“分发”更改为“发布”,链接错误消失了 .

    然而,存档没有出现在Organizer中,虽然我可以在文件系统中找到它,但它有0大小 .

    修复所有这一切的最后一步是将“释放”配置的“跳过安装”设置更改为“否” . 请注意,您必须仅为主项目执行此操作,而不是对Pods项目执行此操作 . 最好保留Pods项目,因为每次运行“pod install”时都会生成它 .

    Update 刚刚得到answer from CocoaPods devs它似乎对我不起作用,因为我正确设置了Pods配置 . 但它可以帮助别人 .

  • 579

    运用使用iOS 7的Xcode 5

    这是我被困一小时后所做的 . 从构建设置>有效体系结构中删除ARM64 .

    增加:另外,对于我的情况,它不是派生数据位置 . 我选择了独特的构建位置 .

相关问题