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)
我不确定错误意味着什么?
#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
以及现有的Debug
和Release
现在在此新
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.a
的libPods.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.a
或libPods.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
为我做了这项工作,希望对您有所帮助。
评论
没有答案涵盖的问题原因。在此处检查此答案:stackoverflow.com/questions/24050012/…