找不到用户标题路径

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

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

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

在这里输入图像描述

蓝色箭头指向桥接标题。 这是我的桥接头看起来像: 在这里输入图像描述

这在这里是我的实际文件夹结构。 在这里输入图像描述

重要的头文件(如JBBarChartView.h)位于供应商文件夹内。 出于某种奇怪的原因,Xcode根本无法找到这些文件,因此无法导入桥接头。

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

  • 对于相关的Target,我已将Swift Compiler - General> Objective-C Bridging Header设置为正确的位置。
  • 我已经将目标的标题搜索路径设置为../../${SRCROOT}并递归。
  • 我在总是搜索用户路径时也选择了YES
  • 而我的用户头部搜索路径也是: ../../${SRCROOT}和递归。 (手动,在我的编译设置中)
  • 我也有一个看起来像这样的xconfig文件:HEADER_SEARCH_PATHS =“../$(SRCROOT)/**”(等等,但它们全部由空格分隔)。
  • 我也清理了DerivedData文件夹,并重新启动了Xcode几次。
  • 无论我尝试什么,出于一些奇怪的原因,Xcode无法找到这些标题。 有人知道我可以尝试什么吗?


    ../../${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 ,编译/运行以确认......直至到达“供应商”头文件的目标文件夹。

    链接地址: http://www.djcxy.com/p/42645.html

    上一篇: Can't find User Header Paths

    下一篇: Header search paths for subproject in XCode