Xcode - ld:找不到-lPods的库

时间:2014-05-08 10:27:34

标签: ios objective-c xcode clang cocoapods

当我尝试构建iOS应用程序时,我收到了这些错误。

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

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

构建设置中的PODS ROOT:

${SRCROOT}/Pods

我没有创建这个Xcode项目 - 只是从git中取出来检查它。

25 个答案:

答案 0 :(得分:523)

如果项目使用CocoaPods,请注意始终打开.xcworkspace文件而不是.xcodeproj文件。

答案 1 :(得分:88)

也有这个问题。我的CocoaPods安装有问题。除了KIF之外没有正确安装的吊舱。我按照this thread的评论来提供帮助。

基本上,我需要确保我的项目和Pods项目的Build Active Architectures Only设置相同。

答案 2 :(得分:48)

经过数小时的研究,这个解决方案对我有用:

(免责声明:结果可能因情况而异)

Library not found -lPods-(someCocoapod)错误是由于:

中的多个条目造成的
Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

很多其他帖子让我看到那里,当我弄乱条目时,我会看到错误的变化,但我不断对同一错误进行一些修改。

失去了太多时间......

我的修复:

仅当$(继承)位于顶部时,才删除“其他链接标志”列表中的-lPods-(someCocoaPod)行 BUT 。起初我不确定,但令人安心的迹象是,当我离开编辑模式(继承)时,我仍然看到了对我的cocoapods的引用。我在调试和发布中测试过,这两个都给了我错误,问题立即解决了。

答案 3 :(得分:32)

似乎项目一直在使用cocoapods。并且项目中缺少这些文件。

你不能从git下载它。你需要从cocoapods安装它。

要获得更多帮助,您可以关注Introduction to CocoaPods Tutorial

如果项目使用CocoaPods,请注意始终打开.xcworkspace文件而不是.xcodeproj文件

答案 4 :(得分:26)

如果您的项目中有多个目标,Cocoapods可能只与其中一个目标很好地集成在一起。

我必须为每个额外的目标手动链接到“Link Binary With Libraries”中的libPods.a

libPods.a in my list of frameworks

答案 5 :(得分:22)

我的问题已通过以下配置修复:

<?php
$allowedImages = array(
    'gif10000.gif',
    'gif2.gif' //etc
);

$file = $_GET['file'];
if (in_array($file, $allowedImages)) { 
    echo '<img src="'.$file.'" />';
}
?>

答案 6 :(得分:10)

上述答案都没有为我解决。

我所做的是在pod install部分之外使用pod命令运行target。例如:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

我快速修复了它并将错误的pod返回到它所属的target部分并再次运行pod install

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

但与此同时发生的事情是,lib -libPods.a被添加到我的链接库中,这些库已不再存在且不应该存在,因为已经存在-libPods-My Target.a那里。

因此解决方案是进入我的目标常规设置并转到链接的框架和库,然后从列表中删除-libPods.a

答案 7 :(得分:8)

如果有人在使用react-native-fbsdk安装后使用Cocoapods来解决错误,请记住您必须删除项目构建阶段<中的所有其他.a文件/ strong>并且只保留名为libPods-WhateverAppName.a的cocoapods中的.a。

Only that remains here

这通常是由于运行rnpm link和rnpm工作方式引起的。

我从构建阶段删除了facebook核心.a文件后,我的项目再次启动并运行。

答案 8 :(得分:7)

我的步骤:

  1. 删除pods文件夹和&#39; Pods&#39;文件。
  2. Type&#34; pod install&#34;进入终端。
  3. 输入&#34; pod update&#34;进入终端。
  4. 除了确保&#34;构建活动架构&#34;如前面的答案中提到的那样设置为YES,这就是为我做的事情。

答案 9 :(得分:6)

7.08.0升级到use_frameworks!并启用cocoapods

后出现同样的问题

PodName.a未从我项目的Frameworks部分删除以前生成的linker error文件。

所以我必须手动删除它们,因为它们导致{{1}}

答案 10 :(得分:4)

删除导入的cocoapods源的所有相应文件/文件夹,但podfile除外。

再次

install cocoapod。这应该清除原始来源的任何多余拉动。

答案 11 :(得分:2)

当你从使用Cocoapods的地方克隆项目时,你需要将它们安装到你的项目中。

在此逐步完成您需要做的事情:

  • 1)将源代码克隆到本地机器;
  • 2)关闭xcode项目(如果打开);
  • 3)在终端上运行此命令在Mac上安装cocoapods应用程序:&#34; gem install cocoapods &#34;,添加&#34; sudo &#34;在一开始如果不起作用;
  • 4)使用&#34; cd &#34;转到xcode项目的根目录。命令在终端;
  • 5)你应该在这个文件夹中有Podfile;如果你想仔细检查它使用:&#34; cat Podfile &#34;命令,它将显示该文件的内容,其中包含必须安装到项目中的库;
  • 6)然后使用&#34; pod install &#34;命令下载并安装库到您的项目;将创建 Podfile.lock {您的项目名称} .xcworkspace 文件;
  • 7)从现在开始,你必须使用 {你的项目名称} .xcworkspace 在xcode中打开它;

祝你好运!

答案 12 :(得分:2)

对我来说,以下是有效的。

  1. 转到“项目目标 - &gt;构建设置 - &gt;预处理 - &gt;预处理器宏”。在“预处理器宏”
  2. 下的所有调试,集成,发布中设置“COCOAPODS = 1”
  3. 在“Project Target”下的“Other Linker Flags”中添加以下内容
    1. $继承
    2. -ObjC
    3. -lc ++
    4. -all_load
  4. 清理并运行项目。如果仍然错误收到相同的信息,请尝试设置“项目目标 - &gt;构建设置 - &gt;仅构建活动架构”,将“调试”设置为“是”并将“集成和释放”设置为“否”。然后对所有“Pods Targets”重复相同的“Build Active Architectures”设置

    清理并运行项目。如果您收到以下错误

     No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
    

    然后尝试Mike先生在此链接中回答

    Xcode 5.1 - No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386)

    希望它有所帮助!

答案 13 :(得分:2)

在具有多个目标的项目中,我在更改Scheme和App名称并尝试更新pod后遇到了同样的问题。该问题是由于Build Phases中的多个条目引起的 - &gt;将二进制文件链接到库,其中列出了先前的.a库和当前库,而前一个库不再存在。从那里删除库清除了问题。

答案 14 :(得分:2)

花了一些时间才弄明白...我正在尝试构建 swift 框架,该框架又依赖于一个可可豆库,我在发布模式下创建构建时遇到此错误,在调试模式下它工作正常!

我验证了所有目标是否具有相同的部署目标,并发现不匹配的 pod 目标与我的框架具有不同的 iOS 部署目标,因此我在任何地方(swift 框架、pod 目标)都保持相同的 iOS 部署目标,并且它的工作非常迷人!

enter image description here

答案 15 :(得分:1)

对我而言,这是有效的。我已将我的应用名称从someApp更改为otherApp。我正在使用可可豆荚进行多个第三方服务集成。因此添加了2个libPod文件(因为我更改了应用程序的名称和目标)。最后我不得不删除一个libPod。它起作用了。

靶&GT;构建阶段 - &gt;链接二进制文件库

答案 16 :(得分:1)

我的方式

  1. 创建新项目并安装pod,它可以正常运行。

  2. 将新项目中“Other Linker Flags”中的文本复制到旧项目中。将旧项目改为同一个新项目。

  3. 同时检查“标题搜索路径”。

答案 17 :(得分:1)

以下解决方案适用于我的核心情节2.3版本。 在其他链接器标志部分下进行以下更改。

1.添加$(继承)并将此项目拖动到顶部位置 2.删除&#34; Pods - &#34;前缀来自-l&#34; Pods-fmemopen“,l&#34; Pods-NSAttributedStringMarkdownParser”和-l&#34; Pods-MagicalRecord“。

如果问题仍然存在,最后查看是否设置了PODS_ROOT。您可以在用户定义的部分进行检查。

答案 18 :(得分:1)

我得到了同样的错误。

问题:我创建了一个单独的工作区并将现有项目添加到其中。我在工作区工作时遇到错误。

修复:后来我发现在添加依赖项时,Workspace会在现有项目中自动创建。并且必须在那个工作区上工作。

答案 19 :(得分:1)

我遇到了同样的问题

命令行上的

pod install和pod update解决了我的问题

答案 20 :(得分:1)

尝试使用 cocoapods

Firebase 集成到我的Xcode项目时,这是我的问题
SELECT device_id INTO last_device_id
   FROM company
   ORDER BY id DESC
   LIMIT 1;
EXECUTE 'INSERT INTO ' || quote_ident(last_device_id)
        || ' (emp_id, entry_date, name) VALUES ($1, $2, $3)'
   USING new.id,  current_timestamp,  new.name;

经过几个小时的搜索并尝试了stackoverflow中列出的各种修补程序后,我的问题终于修复了以下步骤

  1. 转到library not found for -lGoogleToolboxForMac linker command failed with exit code 1 (use -v to see invocation) ,搜索Build Settings,删除所有值Other Linker Flags Image
  2. 为所有目标执行此操作。

    1. 删除pods文件夹。 ($(inherited)
    2. ios/Pods
    3. 瞧!所有链接器错误都将消失。

答案 21 :(得分:1)

可以通过以下步骤解决与lPods相关的问题

  • 选择您的项目目标。
  • 转到"Build Phases"中的"Link Binary With Libraries"
  • 现在删除造成问题的该库的".a"文件。
  • 清洁并构建。

这将起作用。

答案 22 :(得分:1)

我对称为线性梯度的 react-native 库有同样的问题,但我认为问题是由在 -L -L 之间添加空格引起的...这里是错误屏幕 enter image description here

我正在尝试此页面中的所有解决方案,谢谢您的帮助

答案 23 :(得分:1)

在这上面花了半天后,我发现了我的问题。由于某些依赖性,我已将部署目标从 10 提高到 12.1。我更新了项目部署目标和我所有的 pod。

我刚刚发现在目标级别也有一个部署目标。将此升级到 12.1 后,我的项目再次构建。

“项目”的部署目标

Podfile:

“目标”的部署目标:

答案 24 :(得分:0)

如果项目使用CocoaPods,请务必始终打开.xcworkspace文件而不是.xcodeproj文件。 如果您使用的是.xcworkspace,请通过卸下吊舱重新安装吊舱文件,然后再次插入吊舱并进行安装!这对我有用