web-dev-qa-db-ja.com

Xcodeはヘッダーファイルを見つけることができません

私は自分のプロジェクトのフレームワークを作成しようとしています。フレームワークに、ヘッダーファイルのパスをtarget> Build Settings> header-search pathに追加しました。その後、Build Phases> Link Binary With Librariesでこのフレームワークをプロジェクトに追加しました。

フレームワークに含めたヘッダーファイルをインポートしようとすると、。hファイルが見つかりませんエラーが発生します。私がやろうとしていることは可能ですか?それとも何かが欠けていますか?

そのようなフレームワークを作成しました。

IOS> Framework&Library> Cocoa Touch Frameworkとして新しいプロジェクトを開きました。クラスを追加せず、ヘッダー検索パスとライブラリ検索パスおよびリンカーフラグを追加しました。私はすべてのプロジェクトでそれを行うので、この部分で間違いをしたとは思わないが、初めてフレームワークのためにこれをやる。次に、実行を押して、製品からフレームワークを取得します。

プロジェクトを開き、フレームワークの「ビルドフェーズ」>「ライブラリとバイナリをリンク」を追加しました。 #import <myframework/framework.h>のようなフレームワークのヘッダーファイルをインポートできます。この後、フレームワークを追加しました。[一般]> [埋め込みバイナリ]。すべてが正常に見えますが、ヘッダー検索パスでフレームワークにインクルードしたヘッダーをプロジェクトに追加できません。大量のヘッダーがあるため、ヘッダー検索パスを使用する必要があります。すべてをヘッダーに追加することはできません。

17
Yucel Bayram

すべてのパブリックヘッダーがパブリックセクションに表示されていることを確認してください。そうでない場合は、.hファイルをパブリックにドラッグアンドドロップしてください enter image description here

23
Meghs Dhameliya

すべてが正常に見えますが、ヘッダー検索パスでフレームワークにインクルードしたヘッダーをプロジェクトに追加できません。

ヘッダー検索パスで指定されたパスで見つかるすべてのヘッダーがフレームワークの一部になることを期待しているように聞こえるので、検索パスにSomeHeader.hという名前のヘッダーがある場合、フレームワークに組み込まれ、次のようなクライアントプロジェクトにインポートできるようになります。

#import <MyFramework/SomeHeader.h>

しかし、そうではありません。フレームワークでSomeHeader.hを提供する場合は、そのファイルをプロジェクトに追加する必要があり、Meghs Dhameliyaが既に指摘したように、HeadersビルドフェーズのPublic Headers部分でSomeHeader.hを指定する必要があります。これにより、Xcodeはヘッダーファイルをフレームワークにコピーし、フレームワークのクライアントがヘッダーファイルをインポートできるようにします。しかし、それがあなたが本当に望むものであることは明らかではありません...あなたが書いたコメントで:

別のパスに多くのヘッダーがあります。残念ながら、ヘッダー検索パスを使用する必要があります。会社ルールの種類。

したがって、社内のすべてのプロジェクトが同じヘッダー検索パスを指定して、これらのヘッダーファイルにアクセスできるように思えます。それが本当なら、プロジェクトがあなたのフレームワークから#importする必要がある理由はありませんが、その場合、実際の問題が何であるか明確ではありません。または、クライアントプロジェクトがヘッダー検索パスを参照する代わりにフレームワークからヘッダーを取得できるように、フレームワークを作成している可能性があります。その場合、これらのヘッダーをプロジェクトに追加し、上記のように指定する必要があります。

3
Caleb