Xcode 8 - 找不到用户标题路径

时间:2017-04-05 15:46:43

标签: ios objective-c swift xcode xcode8

我有一个以前在Swift 2.2下运行在XCode 7中的项目。但是,我开始将它迁移到Xcode 8和Swift 2.3(Swift 3将在稍后出现)。这是我第一次迁移项目,所以我对很多概念都很陌生。

我一直收到以下错误:     找不到'JBBarChartView.h'文件。

这就是我的项目的样子(由于隐私原因而模糊了不重要的部分)

enter image description here

蓝色箭头指向桥接标题。 这就是我的桥接标题:enter image description here

这是我的实际文件夹结构。 enter image description here

重要的头文件,例如JBBarChartView.h,位于供应商文件夹中。由于某些奇怪的原因,Xcode无法找到文件,因此无法导入桥接标题。

到目前为止,我所尝试的是:

  • 对于相关的目标,我设置了 Swift编译器 - 常规> Objective-C桥接标题到正确的位置。
  • 我已将目标的标头搜索路径设置为 ../../$ {SRCROOT} 并递归。
  • 我还在始终搜索用户路径
  • 上选择了
  • 我的用户标题搜索路径也是: ../../$ {SRCROOT} 和递归。 (手动,在我的构建设置中)
  • 我还有一个xconfig文件,如下所示:HEADER_SEARCH_PATHS =“../$(SRCROOT)/**”(除此之外,它们都用空格分隔。)
  • 我太清理了DerivedData文件夹,并多次重启Xcode。

无论我尝试什么,由于一些奇怪的原因,Xcode无法找到那些标题。有人知道我能尝试什么吗?

1 个答案:

答案 0 :(得分:0)

这个../../${SRCROOT}看起来不对 - 很可能你想要${SRCROOT}/../Vendor/(或接近某些东西)。

当你添加它时,它应该展开SRCROOT宏并显示正在生成的实际路径...这看起来是否正确?

例如,当我使用:

${SRCROOT}/../Vendor/

我明白了:

/Users/DonMag/Source/TestProj/../Vendor/

这会将我的供应商文件放在我正在寻找的地方:

/Users/DonMag/Source/Vendor/

我解决这个问题的步骤:

在项目中创建一个新的FindMe.h文件。将#define FOUNDIT 1放入其中。将#include "FindMe.h"添加到AppDelegate.m的顶部。

添加到didFinishLaunchingWithOptions:

#ifdef FOUNDIT
    NSLog(@"Woo Hoo");
#endif

当然,这应该编译并运行没有问题。

接下来,从项目中删除对FindMe.h的引用,并将FindMe.h移到一个文件夹级别。尝试编译---你应该得到一个未找到的" FindMe.h"错误。

${SRCROOT}添加为Header Search Path

尝试编译/运行。那 应该 有效。如果是的话......

将FindMe.h移至另一个文件夹级别,并将Header Search Path更改为${SRCROOT}/../。编译/运行---应该有效。

继续关注该过程 - 将.h一级(向上或向下移动到新文件夹中),编辑Header Search Path,构建/运行以确认...直到您已达到您的"供应商"的目标文件夹头文件。