2017-04-05 6 views
3

以前はSwift 2.2のXCode 7で実行されていたプロジェクトがあります。しかし、私はそれをXcode 8とSwift 2.3に移行し始めました(Swift 3は後になります)。プロジェクトを移行するのは初めてのことなので、多くの概念をかなり新しく導入しています。Xcode 8 - ユーザーヘッダーパスが見つかりません

次のエラーが表示され続けます。 'JBBarChartView.h'ファイルが見つかりません。

これは

enter image description here

(プライバシー上の理由のために重要でない部分をぼかし)のように私のプロジェクトがどのように見えるかブリッジングヘッダーに青い矢印のです。 これは私のブリッジヘッダーの外観です:enter image description here

これは私の実際のフォルダ構造です。 enter image description here

重要なヘッダーファイル(JBBarChartView.hなど)は、ベンダーのフォルダ内にあります。奇妙な理由から、Xcodeは単にファイルを見つけることができないため、Bridging Headerをインポートできません。

は、これまで私が試したものです:関連ターゲットの

  • 、私はスウィフトコンパイラ設定している - 正しい場所に一般> Objective-Cのブリッジングヘッダーを。
  • 対象のヘッダー検索パスを../../${SRCROOT}と再帰的に設定しました。 ../../${SRCROOT}と再帰:
  • また、私は常に、ユーザーパス
  • そして、私のユーザーのヘッダ検索パスでもある検索にYES を選択しました。 (手動で、私のビルドの設定で)
  • 私はまたこのように見えるxconfigファイルを持っています:HEADER_SEARCH_PATHS = "../$(SRCROOT)/**"(しかし、それらはすべて空白で区切られています。 )
  • 私はDerivedDataフォルダをきれいにして、Xcodeを何度か再起動しました。

私が何を試みても、何らかの奇妙な理由のために、Xcodeはそれらのヘッダーを見つけることができません。誰も私が試すことができるアイデアを持っていますか?

答えて

0

この../../${SRCROOT}は間違っています - おそらく${SRCROOT}/../Vendor/(または近いもの)が必要です。

これを追加すると、になります。SRCROOTマクロが展開され、生成される実際のパスが表示されます...正しいですか?例えば

、私が使用:

${SRCROOT}/../Vendor/ 

私が手:

/Users/DonMag/Source/Vendor/ 

:私は探している私のベンダーファイルを置く

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

これを解決するための手順:

新しいFindMe.hファイルをプロジェクトに作成します。それに#define FOUNDIT 1を入れてください。 AppDelegate.mの先頭に#include "FindMe.h"を追加します。

はdidFinishLaunchingWithOptionsに入れる:

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

当然、それをコンパイルし、問題なく実行する必要があります。

次に、プロジェクトからFindMe.hへの参照を削除し、FindMe.hを1つのフォルダレベルまで移動します。コンパイルしようとすると、 "FindMe.hが見つかりません"というエラーが出るはずです。

Header Search Path

は/実行をコンパイルしようとして${SRCROOT}を追加します。そのの仕事になるはずです。その場合...

FindMe.hを別のフォルダレベルに移動し、Header Search Path${SRCROOT}/../に変更します。コンパイル/実行---動作するはずです。

.hを1レベル移動(新しいフォルダに上または下に移動)し、Header Search Pathを編集して、ビルド/実行を確認して、「ベンダー」ヘッダーファイルのターゲットフォルダに到達するまで。

+0

$ {SRCROOT} /../ Vendor /を使用して、あなたが提案したことを試してみましたが、正しいパスも見えます。しかし、何らかの奇妙な理由のために、Xcodeはまだそれらのファイルを見つけることができません。この問題の原因は何か他の考えがありますか? – Misha

+0

または、Xcodeがビルドログでどこを探しているかを知る方法がありますか? – Misha

+0

私は自分の答えを編集しました。 – DonMag

関連する問題