Xcode 7 库搜索路径警告

120

以下是它的警告信息:

选项“-F/应用程序/Xcode-beta.app/内容/开发者/平台/iPhoneOS.platform/开发者/SDKs/iPhoneOS9.0.sdk/开发者/库/Frameworks”的目录未找到 "

有没有人可以帮助解决这个警告?


1
这个答案对我解决了这个错误:https://dev59.com/L18d5IYBdhLWcg3wkS_Y - fpr0001
@arwaz shaikh 不要忘记将我的答案标记为正确答案(如果您认为它正确回答了您的问题),这可以帮助人们通过Google或Stack Overflow更快地找到它。 - King-Wizard
可能是[‘ld: warning: directory not found for option’]的重复问题(https://dev59.com/hWox5IYBdhLWcg3wDgTR)。 - Senseful
4个回答

226

这是我如何解决这个问题的方法

在将我的Xcode项目从Xcode 6.4迁移到Xcode 7后,我在测试目标(Test target)编译后收到了以下警告信息:

directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/Developer/Library/Frameworks'

实际上,当我比较一个新项目和一个旧项目时,我发现了一些东西...

在旧项目中,警告仅由我的项目的测试目标产生。在'搜索路径'下,我发现它在'框架搜索路径'下包含了两个项目:

$(SDKROOT)/Developer/Library/Frameworks
$(inherited)

新项目将'Framework Search Paths'保持为空。

在我旧的项目中删除这些条目后,警告消失了。

注:

我没有详尽地比较设置,因此可能会有其他差异。

另外,以防你有一天重新遇到以下两个警告消息之一,只需记住你需要这样做:如果警告是针对选项'-L/...'即库搜索路径,请删除其中的内容。但是,如果警告是针对选项'-F/...'即框架搜索路径,请删除其中的内容。


2
以上是正确的。但是,如果您使用CocoaPods,我发现也可以将条目放置在它创建的*.xcconfig文件中。解决方案是相同的:删除它,在这种情况下要从您的*.xcconfig文件中的FRAMEWORK_SEARCH_PATHS行中删除。 - ecotax
2
我有完全相同的问题(-F/...),我已经删除了Framework Search Paths中的内容,但警告仍在显示。 - Gabe12
4
清理并重新构建Xcode项目,警告信息应该会消失。 - King-Wizard
1
我没有使用测试目标,最终不得不将其删除才能构建。 - theLastNightTrain
King-Wizard 给出了正确的答案,但更具体地说,您需要进入项目的“构建设置”>“搜索路径”>“框架搜索路径”。 - pyRabbit

19

根据错误信息,首要任务是将目标路径处理好。您可以像这个StackOverflow问题的答案中所示编辑路径。如果不确定哪个目标生成了错误,请检查所有目标的路径 --- 在升级项目到Xcode 7 beta后,这让我有点困惑;测试目标的FRAMEWORK_SEARCH_PATHS中有一个需要删除的路径。那个路径正是你报告警告的路径;删除路径就可以消除警告。


16

King-Wizard 的回答基本上是正确的,稍微补充一下:

Xcode 7 在一个不存在的路径中查找你的测试框架 XCtest.framework。在“搜索路径 -> 框架搜索路径”下,由 $(SDKROOT)/Developer/Library/Frameworks 设置的路径正在寻找框架文件,而该文件位于 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks 这个无效的路径上。您可以删除行 $(SDKROOT)/Developer/Library/Frameworks 来消除错误并仍然能够运行测试。

'XCTest.framework' 的正确路径是 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks,对于那些好奇的人来说。

希望这可以帮到您。


4

我在使用Xcode 9.2时也遇到了同样的错误,下面是我的解决方案:

  1. 点击项目导航器中的项目
  2. 进入“targets”并点击MyProjectNameTest
  3. 点击“构建设置”并搜索“Framework Search Paths
  4. Framework Search Paths下,删除路径并保留“$(inherited)”。

enter image description here

如果你遇到以下错误:

directory not found for option ‘-L/…

这意味着它是一个库错误,所以您可以尝试按照以下步骤操作:

  1. 点击项目(targets)
  2. 点击“构建设置”,搜索“Library Search Paths”
  3. 在“Library Search Paths”下,删除路径并保留“$(inherited)”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接