归档项目时出错 . 这是我的环境 .
-
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 回答
在我的例子中,问题是Xcode的派生数据位置被设置为“遗留”选项 . CocoaPods目标(libPods.a)正在构建正确,但Xcode正在寻找错误的位置 .
将其切换为“唯一”(默认)解决了这个问题 . 您可以通过转到“首选项”>“位置”并单击“高级...”按钮来执行此操作 .
如果Xcode在链接时抱怨,例如找不到-lPods的库,它不检测隐式依赖项 .
转到产品>编辑方案单击构建添加Pods静态库,并确保它位于列表顶部清理并再次构建如果这不起作用,请验证您尝试包含的规范的源是否已从github拉出来 . 通过查看/ Pods /来做到这一点 . 如果它是空的(它不应该是),请验证〜/ .cocoapods / master // .podspec中是否包含正确的git hub url . 如果仍然不起作用,请检查您的XCode构建位置设置 . 转到首选项 - >位置 - >派生数据 - >高级,并将构建位置设置为“相对于工作区” .
http://docs.cocoapods.org/guides/getting_started.html
如果您仍然遇到此问题,请尝试:
这项工作对我来说,希望这对你有所帮助 .
我更新了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.
我不知道背后的完美原因,但可能对某人有所帮助 .
尝试打开xcworkspace文件而不是xcodeproj文件
我在这里经历了每个答案,但对我来说这简直太简单了......转到Target - > Build Phases,然后删除libPods-YourProject.a,然后使用“”再次添加它 . 不要担心图书馆是红色的,没关系 .
在所有pod中使用ONLY_ACTIVE_ARCH = NO解决了我的问题 . 为了使这个持久化,我在我的Podfile中添加了一个post_install挂钩:
pod install
你已经完成了 .我使用了将应用程序和Podfile中的测试目标分开
这导致了两个新产品libPods-App.a和libPods-AppTests.a,它们使得之前的产品libPods.a已经过时 . 我不得不从两个目标的 Build Phases 配置的 Link Binary With Libraries Section 中删除此产品 .
当我编辑Podfile添加我之前没有使用目标的目标时,我遇到了同样的问题 .
Podfile
在想知道我发现在目标属性>>常规选项卡>>链接框架和库部分下,有新的libPods-xxxx.a和旧的libPods.a
我刚刚删除了libPods.a,一切正常 .
不是一个解决方案对我有用,这真是难以忍受,有一个文件
libpods.a
(红色)我删除它,一切正常!为我干杯;)我发现选择“Find implicit Dependencies”(在产品/编辑方案下)将解决此问题,而不必将pod添加为目标 .
在我的情况下
pod install
在创建分发和发布方案后修复了问题 .如果您使用的是iOS7和Xcode 5,请执行以下操作:
选择您的Pods项目 .
转到目标窗格并在构建设置中,选择架构 - >标准架构(armv7,armv7s) .
对Pods项目的每个目标执行相同操作 .
一定要打开
.xcworkspace
,而不是.xcodeproj
我试过这个帖子的每一个答案都无济于事 . 最后通过将目标项目中的“预配置构建产品路径”与Pods项目中的值相匹配来解决我的问题 . 原来他们正在建设两个不同的输出位置 . 此主题中的其他任何建议都与我无关 . 如果XCode提供了有用的错误描述(例如为什么它不能使用lib - 找不到文件,找不到匹配的架构等),那将会很棒 .
尝试
link_with'YouTarget1','YouTarget2'......
我的项目工作,目标突然停止编译 . 然后添加“link_with”并恢复正常 .
显然,现在它只是连接到第一个目标,链接是什么:
http://guides.cocoapods.org/syntax/podfile.html#link_with
只有将“库搜索路径”(在“MyProject”的构建设置中)添加到“Pods / build / Debug-iphonesimulator”才能为我工作(使用模拟器时) .
从这里得到它:https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
如果你在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重建项目以重建项目 .
归档提交时我遇到了同样的问题 . 关于这个问题的讨论可以在这里找到:https://github.com/CocoaPods/CocoaPods/issues/155
总之,有两种方法适合我:
将"Preferences -> Locations -> Advanced"设为"Custom(Relative to Workspace)"或
将Podfile设置为
- platform :ios, :deployment_target => "5.0"
你打开工作区(由CocoaPods生成)而不是xcodeproj?
我指定了一个旧的libPod.a文件(可能是由于我改变了目标) .
Project Settings - > Build Phases - > Link Binary with Libraries
通常,cocoapods只包含一个库,例如
libPods-target.a
或libPods.a
. 我通过删除副本解决了它 .我已将
Podfile
中的pod列表划分为不同的目标,例如:跑了
pod install
这创建了一个新的库
libPods-ABC.a
,我的二进制文件必须链接到该库 . 但是错误是它没有删除以前的库,即libPods.a
.解决方案:从
Build Phases
的Build Phases
中删除库libPods.a
.我将项目重命名为“合作伙伴”中的“NBSelector” .
重命名项目后,我找不到“libPods-Partners找不到库”错误 . Xcode试图链接到旧的Partners.a文件 . 如果在重命名后有podInstalled,请将其删除 .
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" .如果您正在为iOS7和Xcode5存档并遇到这些错误,请参阅此链接 . 似乎Apple正在放弃可可 beans 荚所需的架构https://github.com/CocoaPods/CocoaPods/pull/1352
在本期中,如果您已在系统中安装并更新了pod,则Xcode无法找到Pods库 . 要解决此问题,请检查可能发生的以下原因:
您正在使用工作区 .
Pods库构建 .
Pods库在项目的产品组中引用 .
您的目标包含与框架构建阶段的链接中的Pods库 .
我今天遇到了类似的问题 .
我设置了一个新项目
我安装了可可 beans 荚
我创建了一个新配置
Preview
以及现有的Debug
和Release
现在在编译这个新的
Preview
配置时,编译器将无法与Pod链接并向我发送以下消息:解决方案:
我要做的就是奔跑
再次,因此为新的
Preview
配置配置cocoapods . 它更新了我的项目,工作区和Pod的项目文件,问题就消失了通过以下步骤解决了这个问题:
更新您的cocoapods安装 . ($ [sudo] gem install cocoapods)
在项目下重新安装依赖项 . (pod安装)
清理并重新构建/存档 .
您是否创建了“分发”或类似配置来制作Ad-Hoc和App Store档案?像许多其他人一样,我遵循Apple的建议并称之为“发布”配置,称为“发布”并为其设置不同的签名规则 . 好吧,也许这是他们在组织者中引入方案和“分发”选项之前的推荐,无论如何,我刚刚从之前获得过它 .
然后我和Pods有同样的问题 . 调试时一切运行良好,但归档失败,链接错误 . 尝试此操作后,我将原始项目的存档配置从“分发”更改为“发布”,链接错误消失了 .
然而,存档没有出现在Organizer中,虽然我可以在文件系统中找到它,但它有0大小 .
修复所有这一切的最后一步是将“释放”配置的“跳过安装”设置更改为“否” . 请注意,您必须仅为主项目执行此操作,而不是对Pods项目执行此操作 . 最好保留Pods项目,因为每次运行“pod install”时都会生成它 .
Update 刚刚得到answer from CocoaPods devs它似乎对我不起作用,因为我正确设置了Pods配置 . 但它可以帮助别人 .
运用使用iOS 7的Xcode 5
这是我被困一小时后所做的 . 从构建设置>有效体系结构中删除ARM64 .
增加:另外,对于我的情况,它不是派生数据位置 . 我选择了独特的构建位置 .