33

在我用 Cocoapods 安装 DTCoreText ( https://github.com/Cocoanetics/DTCoreText ) 后,当我尝试运行模拟器或设备时,总是会出错!

ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos'
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

在我的“Link Binary With Libraries”中,“libPods”部分是红色的:

在此处输入图像描述

这是我的构建设置:

我的项目的设置:

在此处输入图像描述

我的 Pod 的设置:

在此处输入图像描述

编辑:

我不确定是什么问题,但是当我删除所有 DTCoreText 和 Cocoapods 的东西并重新安装所有东西时,我解决了这个问题!

4

13 回答 13

50

建议尝试以下对我有用的方法:

a) 从 Target Settings 视图中的“Library”中搜索并双击以检查Library Search Paths

b) 列出了两个值$(inherited)$(PROJECT_DIR)/Pods/build/Debug-iphoneos。删除后者。

c) 进行全面清理、构建和运行

d)pod install再次运行。请注意,该条目未恢复。

于 2014-11-03T22:29:09.230 回答
37

这也可能有帮助:

  1. 在您的主项目(不是 Pod)中选择主要目标
  2. 转到构建阶段选项卡
  3. 转到将二进制文件与库链接
  4. 删除导致问题的库(它可能是红色的)
于 2015-03-04T08:36:50.493 回答
29

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

于 2014-11-29T07:11:56.177 回答
27

在我链接的二进制文件中,我同时拥有libPods.alibPods-MyProj.a。我之前更新了我的 Podfile 以拥有两个单独的目标(让它在 Swift 中通过桥接编译测试),这意味着我必须手动删除旧的libPods.a依赖项。

于 2014-12-01T20:24:42.063 回答
8

我发现我的其他链接器标志构建设置$(inherited)中缺少该内容。应用此选项修复了我看到的缺失库问题。

于 2015-02-05T16:49:27.033 回答
5

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

于 2014-07-08T16:50:47.490 回答
4

在目标的构建设置页面中查找“库搜索路径”。将 Debug 的文件夹名称从 Debug-iphoneos 更改为 Debug-iphonesimulator

于 2014-06-24T02:18:55.720 回答
3

确保实际构建了缺少的 pods 库。为此,请打开构建方案

Product > Scheme > Edit Scheme... > Build

添加 Pods 目标并将其放在抱怨缺少库的目标之前(在我的情况下,这是 UI 测试——我只是为此苦苦挣扎了几个小时......)

于 2016-04-19T12:16:18.467 回答
2

造成这个问题的原因有很多。

我们需要检查:

  • 构建设置$(inherited)
  • 检测所有隐式依赖项
  • …………

疑难解答: http: //guides.cocoapods.org/using/troubleshooting.html

于 2014-12-09T06:50:26.223 回答
2

对我来说,错误是:Pods 目标不包含 i386 所需的架构切片。所以我点击了 Pods 项目 --> Pods-ProjectName 目标,然后在 Build Settings 中,将Build Active Architecture Only 设置为 NO对于DebugRelease。这可以确保 Simulator 和 Device 切片都已构建。模拟器使用i386架构,实际设备使用x86-64。所以你必须确保所有依赖项目的所有依赖目标都在构建两者,如果你想在模拟器上运行和侧加载到设备。

于 2016-07-01T15:17:42.883 回答
0

当您使用 App 扩展时,导航到扩展目标,并过滤到库搜索路径,删除编译器警告给您的路径。

于 2014-12-30T09:17:38.693 回答
0

首先我跑了

sudo rm -r /Library/Developer/CommandLineTools

删除命令行工具目录。然后我再次安装了命令行工具

xcode-选择--安装

这为我解决了这个问题。

于 2021-05-30T20:13:14.763 回答
0

armv7VALID_ARCHS内部删除Build Settings为我解决了这个问题(Xcode 10.3)。armv7s我只有,arm64arm64ein后才能提交VALID_ARCHS

于 2020-01-13T11:28:43.577 回答