【问题标题】:Xcode 7.1 header not found未找到 Xcode 7.1 标头
【发布时间】:2016-01-26 11:05:24
【问题描述】:

在存档期间 Xcode 7.1 确实说 Restkit/Restkit.h not found 但在调试中它成功找到了标头。这是一个不使用可可豆荚的旧项目,因此在其中手动添加了 RestKit。尝试了许多解决方案,但没有成功。需要帮助。

【问题讨论】:

  • 有完全相同的问题。使用 RestKit 0.10.3(非 cocoapods)。尝试摆弄搜索标题路径,但到目前为止没有任何效果。也试过这个 [issues.apache.org/jira/browse/CB-9656]
  • 问题的原因是我们在 header search paths 中添加了“$(BUILT_PRODUCTS_DIR)/../../Headers”,它会查找 build/Release-iphoneos 然后回溯到 Headers包含文件 Restkit.h 的文件夹,但不幸的是,在 xcode 7.1 的存档期间未创建 Release-iphoneos。也许您可以在这方面找到一些帮助

标签: xcode restkit xcode7.1


【解决方案1】:

结合您的建议和this SO post,我设法通过在项目构建设置中添加“$(BUILD_ROOT)/../IntermediateBuildFilesPath/Headers”(递归),发布的标题搜索路径来解决它。 还设置 Skip Install = YES(在 RestKit 项目中构建设置/部署)并更改:

#import <RestKit/RestKit.h> to "RestKit/RestKit.h"

注意。检查存储派生数据的 xcode 首选项/位置选项卡。默认为唯一构建位置。然后在 Finder 中查找文件夹 IntermediateBuildFilesPath 并搜索您缺少的标题。将此文件夹添加到搜索路径。

【讨论】:

  • 我可以确认添加 "$(BUILD_ROOT)/../IntermediateBuildFilesPath/Headers" 到 RELEASE 只为我解决了这个问题。以后我可能会因为不执行其他步骤而产生其他问题,但现在看来我归档得很好。
  • 我还有一个使用 RestKit 的遗留项目,这对我也有用,谢谢!像 eric 一样,我没有让它递归,也不需要更改 #import 行。
  • 太棒了!我通过添加以下内容在目标搜索标头发布部分进行了完全尝试: $(BUILD_ROOT)/../IntermediateBuildFilesPath/Headers
【解决方案2】:

我有同样的问题。我在 Header Search Paths 构建设置中添加了以下内容并选择了非递归,它解决了我的问题:

"$(BUILD_DIR)/../IntermediateBuildFilesPath/Headers"

我不必更改导入语法或更改任何其他构建设置。

【解决方案3】:

将标题搜索路径更改为:

"$(BUILD_DIR)/../IntermediateBuildFilesPath/Headers" (non-recursive)

对我来说也是正确的方法。对于其他子项目,您应该将 Public headers 文件夹路径(构建设置 > 打包)更改为

"../../Headers/$(TARGET_NAME)"

在子项目目标的设置中。

【讨论】:

  • 您,先生,救了我的命 :-) 我正要放弃这里!现在一切都说得通了……
【解决方案4】:

以上所有答案都是解决方案的一部分;然而,就我而言,我遇到了一个让我困惑了一会儿的细节。

根据上面的答案,我还通过添加以下内容更新了标题搜索路径(在构建设置下):

"$(BUILD_DIR)/../IntermediateBuildFilesPath/Headers" (non-recursive)

但直到我意识到这才奏效......

我只是在更新 Project,而 Target 保留了旧路径。

所以记得更新项目路径以及目标路径

ps,我不必更改任何 RestKit 导入语句。

【讨论】:

  • "对该答案的另一条注释" --> 拥有 500 次代表,您就有资格对另一个答案发表评论。如果您选择留下答案,请至少明确链接到您所指的目标答案,以便在一年后清楚您在说什么。
  • @AndrasDeak,以上所有答案都是指添加相同的搜索路径,相同的解决方案。我发现我不需要更改导入语句。
  • 那我建议改写你的第一句话。也许删除第一句话并明确指出现有方法对您不起作用,而您的实际答案是您帖子的后半部分:) 我 am 外行,但这可能会令人困惑也给别人。 (只是一个建议,你可以接受也可以离开)
  • ps,$(BUILD_DIR) 可以替换为上述答案中使用的 $(BUILD_ROOT) ,并且两种方式都可以在 Xcode 7.3 中使用(它们指向相同的路径),尽管我认为这可以未来的变化。
猜你喜欢
  • 2012-10-17
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多