【问题标题】:Xcode 7 Library search path warningXcode 7 库搜索路径警告
【发布时间】:2015-08-29 21:03:40
【问题描述】:

这是它显示的警告:

找不到选项“-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks”的目录”

谁能帮忙解决这个警告?

【问题讨论】:

标签: xcode xcode7


【解决方案1】:

这就是我解决这个问题的方法

进一步迁移我的 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'

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

在旧项目中,警告仅由我的项目的测试目标产生。在 'Search Paths' 下,我发现它在 'Framework Search Paths' 下包含两项:

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

新项目将'Framework Search Paths'留空。

删除旧项目中的这些条目,然后删除警告。

注意事项:

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

另外,万一有一天您再次遇到以下两个警告消息之一,请记住您必须这样做:如果警告是针对选项 '-L/...'是图书馆搜索路径,删除那里的东西。但是,如果警告是针对选项 '-F/...' 即框架搜索路径,请删除那里的内容。

【讨论】:

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

根据错误消息,听起来首要任务是理顺目标的路径。您可以编辑this StackOverflow question 的答案中显示的路径。如果您不确定是哪个产生了错误,请务必检查所有目标的路径 --- 在将项目升级到 Xcode 7 测试版后,这让我有点困惑; FRAMEWORK_SEARCH_PATHS 中有一个路径需要删除测试目标。那里的路径正是您报告收到警告的路径;删除路径消除了它。

【讨论】:

    【解决方案3】:

    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. 在 Project Navigator 中单击您的项目
      2. 转到目标并单击MyProjectNameTest
      3. 点击构建设置并搜索“Framework Search Paths
      4. Framework Search Paths下,删除路径并保留“$(inherited)”。

      对于那些有以下错误的人:

      找不到选项“-L/…”的目录

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

      1. 点击您的项目(目标)
      2. 点击Build Settings,搜索“Library Search Paths”
      3. 在库搜索路径下,删除路径并保留“$(inherited)”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-08
        • 2011-03-26
        相关资源
        最近更新 更多