归档项目时出现错误。这是我的环境。


Mac OS Lion
Xcode 4.3.1
iOS SDK 5.1

项目部署目标是:<错误显示错误:

IPHONEOS_DEPLOYMENT_TARGET 3.2


我想Pods是我用来管理XCode项目依赖项的CocoaPods 。
https://github.com/CocoaPods/CocoaPods

这是我的Podfile

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


我不确定错误意味着什么?

评论

没有答案涵盖的问题原因。在此处检查此答案:stackoverflow.com/questions/24050012/…

#1 楼

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

评论


是的将Pods项目的发行体系结构更改为“ armv6 armv7”后,此问题已解决。

–天使
2012年4月5日下午5:32

啊哈,在您的Podfile中,如下所示指定平台:platform:ios,:deployment_target =>“ 3.2”。下次运行pod install时,应该可以正确配置它。

–合金
2012年4月5日在21:54

为了清楚地了解新手,您应该打开.xcworkspace文件,而不是.xcodeproj文件。这样,除了您的项目外,Xcode还会了解Pods /目录中的项目以及如何构建libPods.a。

–乔纳森·特兰(Jonathan Tran)
13年7月8日在0:59

接下来是@JonathanTran的评论...如果打开.xcodeproj,则需要先将其关闭,然后再打开.xcworkspace文件。

–罗斯
2013年9月18日19:25在

请注意,您与Pod一起使用的项目也应将其架构设置为armv6 armv7(如果那是您在Pods项目架构上使用的选项)。如果不这样做,您将得到同样的错误。

–帕特里克·巴苏(Patrick Bassut)
2014年5月26日6:16



#2 楼

我通过使用

target :App do
    …
end

target :AppTests do
    …
end


在Podfile中分离了应用程序和测试目标,这分别导致了两个新产品libPods-App.a和libPods-AppTests.a以及他们使以前的产品libPods.a过时了。我必须从两个目标的“构建阶段”配置的“与库链接二进制文件”部分删除此产品。

评论


是的,在此线程前面尝试了十几种其他事情之后,对我来说就是这样。我的podfile具有上述两个目标,因此未构建libPods.a。从“带有库的链接二进制文件”部分删除libPods.a(已修复)(尽管由于缺少SQLite lib等,我现在当然有32条“未定义的符号”消息要排序。

–热舔
2014年11月11日在22:37



此修复程序与stackoverflow.com/a/21694261/581994以及其他几个修复程序相同。

–热舔
2014年11月11日22:56

目前仍然是发生的问题

–nsantorello
2015年8月5日在16:43

“他们淘汰了以前的产品libPods.a。我不得不删除...”

–瓦西里
2015年11月23日在13:32



这主要是我的问题。由于某种原因,我也有一个来自较早测试目标的二进制文件。

– LJ Wilson
16年5月25日在16:36

#3 楼

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


我设置了一个新项目
我安装了可可豆荚
我创建了新的配置Preview以及现有的DebugRelease


现在在此新Preview配置上进行编译时,编译器将无法与Pods链接并显示以下消息:

ld: library not found for -lPods



解决方案:

我要做的就是再次运行

 pod install


,然后为新的Preview配置。它更新了我的项目,工作区和Pod的项目文件,问题消失了

评论


这也吸引了我。特别是在创建配置后很长一段时间,它仍然可以正常工作,并且只有当我清除派生数据时才出现问题。

–丹尼尔·伍德(Daniel Wood)
14-10-21在13:29

并注意“ pod install --verbose”或“ pod update --verbose”输出的“ Send stats”部分中显示的警告,例如“ yourApp [Debug]”目标会覆盖“ HEADER_SEARCH_PATHS” `在...中定义的构建设置”或“ ...目标将覆盖`OTHER_LDFLAGS`构建设置...”。

– jk7
16-3-23在2:28



在“按配置构建产品路径”中更改“预览”配置,然后进行Pod安装,pod不会在Pod项目中保存我的价值,有帮助吗?

–liu冥王星
18年5月12日在8:25

啊!在为扩展创建新配置后,便立即出现了问题。前3个步骤可帮助我了解问题。谢谢!

–iHarshil
19年8月23日在9:56



#4 楼

确保打开的是.xcworkspace,而不是.xcodeproj

评论


这是我的问题。我是从常规Xcode项目文件中打开项目的。一旦开始使用可可豆荚,您需要开始从.xcworkspace文件而不是.xcodeproj文件打开项目。

–HotFudgeSunday
2014年12月4日15:14

嘿,我总是这样做:)

–yeahdixon
15年3月20日在19:51

这个这个这个

–布莱恩
18-10-18在15:15

天哪,我想拥抱你。改变了很多从来都不是问题的东西!

–kjonsson
19年11月6日在22:19

#5 楼

不是一个对我有用的解决方案,这实在难以忍受,有一个文件libpods.a(红色),我将其删除了,一切正常!为我喝彩;)

评论


也发生在我身上。我已经重命名了目标,它创建了这个有问题的工件.a文件。

–seenickcode
15年5月20日在22:45

如果这样做,则不会将使用Cocoapods添加的库添加到项目中。

–弗朗西斯科·科拉莱斯·莫拉莱斯(Francisco Corrales Morales)
2015年9月7日在20:37

您做了我的一天:D,有2个目标,我删除了一个目标,但它的Pod仍然无法建立,解决方法是删除该目标的Pod的引用

–穆罕默德·阿拉比德
17年3月21日在20:56

我也一样这是我多年未接触的一个旧项目,但仍具有旧格式Podfile等。

– B部门
18年8月3日在21:41

#6 楼

我已将Podfile中的广告连播列表划分为不同的目标,例如:我的二进制文件必须链接到的。但是错误是它没有删除以前的库pod install

解决方案:从libPods-ABC.alibPods.a中删除库libPods.a

评论


这与stackoverflow.com/a/23085107/581994和stackoverflow.com/a/21694261/581994相同。

–热舔
2014年11月11日22:55

解决方案是不同的。这使用这个确切的解决方案为我解决了。

– cynistersix
2015年1月5日在22:51

删除库libPods.a,然后通过pod install为我解决此问题。

– Bisma
16-2-22在6:51

错误导出为IPHONEOS_DEPLOYMENT_TARGET = 9.0时已解决,它带有“ ld:-lPods找不到库”

– jacksonfdam
16-10-18在22:05

重命名目标后,对我有效。

–alsantos123
17年1月26日在4:27

#7 楼

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

项目设置->构建阶段->用库链接二进制文件

通常,cocoapods会仅包含一个库,例如libPods-target.alibPods.a。我通过删除重复项来解决它。

评论


这对我有用。我添加了对测试目标(* Tests和* UITests)的pod支持,并且基本配置从Pods.debug更改为Pods-MyApp.debug,所以现在我只需要libPods-MyApp.a(有一个“褪色”图标对于旧的libPods.a),

–尼古拉斯·米亚里(Nicolas Miari)
16年2月17日在9:39

没有适合我的褪色图标,但这是唯一有效的解决方案。

– Yogesh Maheshwari
16年5月8日在2:00

同样在这里。谢谢

–rmvz3
17年7月10日在9:30

我更改了项目名称,然后发生错误。上述解决方案为我工作。

– Guness
18年2月1日在19:39

#8 楼

如果您在cocoapods v25 / Xcode 5上遇到此问题,则Pods Xcode项目现在在Debug配置中将ONLY_ACTIVE_ARCH构建设置设置为YES。您将必须在项目/目标上设置相同的设置,否则构建将失败。

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures -after-migration-to-xcode-5-and-cocoapods-0250

更新
确保您拥有最新的gems / cocoapods



gem更新系统
gem更新cocoapods

您将要使用
Pod Install重建项目来重建项目。

评论


在将CP添加到一个非常老的项目后,对我来说就是这样。

–乔什·赫德纳尔(Josh Hudnall)
2014年2月12日在23:59

对我来说也一样-将CP添加到一个非常老的项目中,可以在模拟器上进行构建,但是一旦我切换到针对设备进行构建,构建就会失败。这个答案很有帮助!

–弗洛里安
2014年7月29日在11:40



#9 楼

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

转到“产品”>“编辑方案”
单击“构建”
添加Pods静态库,并确保它位于列表的顶部。
再次清洁并生成
,如果这不起作用,请确认您要包含的规范的源已从github提取。通过在/ Pods /中进行查找。如果为空(不应该为空),请验证〜/ .cocoapods / master //。podspec中是否包含正确的git hub URL。
如果仍然无法正常运行,请检查XCode构建位置设置。转到“首选项”->“位置”->“派生数据”->“高级”,并将构建位置设置为“相对于工作区”。

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

评论


第一部分解决了我的问题(产品>编辑方案,将Pod添加到Build作为第一项)。谢谢

– William Power
2014年6月10日22:38

我在带有cocoapods 0.36.0的xCode 6.3中遇到了这个问题,这就是解决此问题的方法。谢谢!

– ProgrammierTier
2015年6月18日15:30



与xcode 6.3 cocoapods 0.37一样->谢谢!目标设置让我变得疯狂,而问题是计划。只需添加Pods。

– altagir
15年7月22日在23:23

#10 楼

当我编辑Podfile时添加了以前没有目标的目标时,我遇到了同样的问题。
Podfile
target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

想知道之后,我发现在目标属性下>> General标签> >“链接框架和库”部分,有一个新的libPods-xxxx.a和一个旧的libPods.a。
我刚刚删除了libPods.a,一切正常。

评论


这也是我的问题。我认为问题的根源在于在开发过程中我已经升级了CocoaPods和Podfile的格式。

– gklka
15年8月10日在12:52

在pod上添加目标后,我的场景完全相同。 +1以提高准确性

– Adriano Spadoni
2015年10月7日在17:24

#11 楼

GitHub上的CocoaPods Wiki在其常见问题中具有正确的答案:


转到Product > Edit Scheme

单击Build

添加豆荚静态库,并确保它位于列表的顶部。
清理并重新构建
。如果这样做不起作用,请验证是否要从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并将构建位置设置为“相对于工作区”。



评论


我也遇到了这个问题,但似乎无法执行这些步骤。我被困在“添加pods静态库并确保它在列表顶部”。单击以将其添加到Build方案后,静态库未显示。任何想法?

–海湾菲利普斯
2013年12月3日15:51

@BayPhillips关闭当前项目,然后打开在项目文件夹中创建的.xcworkspace。然后显示静态库

– Junho
18/12/27在4:32

#12 楼

我将项目从“合作伙伴”重命名为“ NBSelector”。

重命名项目后,出现“找不到libPods-Partners库”错误。 Xcode试图链接到旧的Partners.a文件。重命名后如果已安装pod,则只需将其删除。



评论


对于我的问题的完美解决方案:)但如果您要使用豆荚,则在卸下豆荚后需要再次添加它

– satheesh
2015年11月27日,0:27



#13 楼

在所有广告连播中使用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,您已完成。

#14 楼

您是否创建了“分发”或类似的配置来制作Ad-Hoc和App Store存档?
和其他许多人一样,我遵循了Apple的建议并称为“发布”配置,称为“分发”,并为其设置了不同的签名规则。好吧,也许这是在他们在Organizer中引入方案和“ Distribute”选项之前的一项建议,无论如何,我只是以前的。

然后,我对Pod也遇到了同样的问题。调试时一切正常,但是归档失败并出现链接错误。尝试此操作后,我将原始项目的存档配置从“分发”更改为“发布”,链接错误消失了。

尽管我可以找到该存档,但它并未显示在管理器中它在文件系统中的大小为0。

解决所有问题的最后一步是将“发布”配置的“跳过安装”设置更改为“否”。请注意,您只需要对主项目执行此操作,而不必对Pods项目执行此操作。最好保持Pods项目不变,因为它是在您每次运行“ pod安装”时生成的。对我来说,因为我已经正确设置了Pods配置。
但是它可以帮助其他人。

#15 楼

就我而言,问题是Xcode的“派生数据”位置设置为“旧版”选项。 CocoaPods目标(libPods.a)的构建正确,但是Xcode的位置不正确。

将其切换为“唯一”(默认)即可解决此问题。您可以通过以下方法执行此操作:转到“偏好设置”>“位置”,然后单击“高级...”按钮。

评论


但是我处在必须使用“旧版”的情况下,继续寻找另一种解决方案...

–可可鲍勃
15年9月29日在11:07

#16 楼

仅在将“库搜索路径”(在“ MyProject”的构建设置中)添加到“ Pods / build / Debug-iphonesimulator”时(使用模拟器时)对我有用。

从此处获取:
https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

#17 楼

如果您正在为iOS7和Xcode5存档,并出现了这些错误,请参考此链接。苹果似乎放弃了需要可可豆荚的体系结构
https://github.com/CocoaPods/CocoaPods/pull/1352

#18 楼

我发现选择“查找隐式依赖项”(在产品/编辑方案下)将解决此问题,而不必将吊舱添加为目标。

评论


按照以下步骤操作后,再次运行pod install也可以提供帮助。

– StackRunner
14年8月19日在9:11

#19 楼

我仔细阅读了这里的所有答案,但对我而言,这简直太简单了……转到“目标”->“构建阶段”,然后删除libPods-YourProject.a,然后使用“ +”再次添加。不用担心库是红色的,就可以了。

#20 楼

我在更新cocoapods之后使用了旧的cocoapod版本,由于长时间更新,我建议我更新已安装的pod,因为它进行了重大更新。我对其进行了更新,并且新版本的Pod已更新为正常。但是在那之后,我遇到了类似library not found for -lPods-xxxprojectName-xxxxxpodName的错误

在尝试了很多解决方案作为答案之后,这些都不适合我。然后我转到项目设置,发现pod路径已更改,位于Other Linker Flag上。

检查您的Manage Schemes是否具有正确的pod名称,并在Other Linker Flag中进行比较,如果不相似则进行更改

旧的Pod路径是-l"lPods-xxxprojectName-xxxxxpodName"

,但是新的Pod只是xxxxxpodName,所以我用如下所示的新的替换了Other Linker Flag

更改为Pod路径-l"xxxxxpodName"并可以使用。

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

#21 楼

我确实打开了工作空间,但遇到了相同的错误。

仅将Build Active Architecture设置为YES

解决了我的问题。

评论


有帮助。谢谢。不知何故,只有在其余配置将其设置为“否”时,才将其设置为“调试”,并且除调试以外,我已经看到所有构建的错误。

–帕维尔·亚基缅科
19-10-15在14:23

这只帮助了我。这样的答案“以.workspace打开”太无聊了。我认为开发人员应该首先充分检查安装指南文件。

–KoreanXcodeWorker
20 Jan 9 '20在2:28



#22 楼

通过执行以下步骤解决了该问题:


更新您的cocoapods安装。 ($ [sudo] gem install cocoapods)
在项目下重新安装依赖项。 (安装Pod)
清理并重新构建/存档。


评论


这实际上效果很好。我已经更新了项目中的其中一个Pod,但结果中断了。我遵循了这些步骤,并且成功了。这是一个快速修复。谢谢

–agarcian
13年10月6日17:56

#23 楼

就我而言,pod install在创建分发和发布方案后解决了该问题。

#24 楼

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

总而言之,有两种方法对我有用:


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



#25 楼

在iOS 7上使用Xcode 5

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

添加:另外,就我而言,它不是派生数据位置。我选择了唯一的构建位置。

#26 楼

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


选择Pods项目。
转到目标Pod,然后在“构建设置”中选择“架构”->“标准架构”( armv7,armv7s)。
对Pods项目的每个目标执行相同的操作。


#27 楼

我试图在此线程中的每个答案都无济于事。最后,通过将目标项目中的“预配置构建产品路径”与Pods项目中的值进行匹配,解决了我的问题。原来,他们正在构建到两个不同的输出位置。此主题中的其他建议均与我无关。如果XCode提供有用的错误描述(例如,为什么它不能使用lib-找不到文件,找不到匹配的体系结构等),那将是很好的。

#28 楼

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


您正在使用工作区。
将构建Pods库。
您的项目的产品组中引用了Pods库。
您的目标包括在与以下链接的Pods库中:框架构建阶段。


#29 楼

尝试

link_with'YouTarget1','YouTarget2'...

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

显然,现在它只是连接到第一个目标,链接显示的内容是:

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

评论


这个问题为我解决了...问题,第一个目标正在构建,第二个目标失败,出现“ ld:-lPods找不到库...”

–uxor
2014年11月16日16:08

#30 楼

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

pod update


为我做了这项工作,希望对您有所帮助。