8

複数の iOS アプリで使用される静的ライブラリを構築しています。並行して、ライブラリを使用してこれらのアプリの 1 つに取り組んでいます。

開発中、少なくとも 1 日に 1 回、ライブラリのヘッダー ファイルが見つからないという迷惑なエラーが発生します (私のアプリ プロジェクトで)。静的ライブラリを構築するとき、ヘッダーはPublicPrivateまたはProject

ライブラリで公開したいすべてのヘッダーはPublic.

私の質問は、これらの公開ヘッダーを管理する最善の方法は何ですか? すべてのパブリック ヘッダーに対して1 つのメイン パブリック ヘッダー ファイルを作成する必要があります#importか? Xcode でそのようなファイルを生成できますか?

もう 1 つの重要な質問は、Public Header Folder Path設定の推奨値は?

私の主な目標は、このライブラリを使用する将来のプロジェクトが、できるだけ少ない構成で実行できるようにすることです (リンカー フラグの追加、変更User Header Search Pathなど)。

どうもありがとうございました。

4

1 に答える 1

-1

public / private / projectヘッダーについては、念のために以前の回答を示します=> https://stackoverflow.com/a/8016333/1075192

ほとんどの場合、C / C ++ / Obj-Cライブラリとフレームワークには、他のすべてのものを含む1つのメインヘッダーがあります。たとえば、Cocoaフレームワークはこのパスに従います。

たとえば、QuartzCoreフレームワークを使用してCAAnimationを宣言するには、次のようにします。

#import "QuartzCore/CAAnimation.h"

また

#import "QuartzCore/Quartzcore.h"

「QuartzCore.h」は実際にはヘッダーガードのみで構成されており、ライブラリの他のすべてのヘッダーが含まれています。

私の意見では、必要のないすべての宣言が含まれていないため、実際には最初のものを使用する方が良いと思います。しかし、ほとんどの場合、すべてを一度に含めるという怠惰なソリューションを選択します。

これをxCodeで直接生成できるかどうかはわかりませんが、インクルードまたはインポートの集まりであるため、とにかく自分で生成するのは簡単です。

パブリックヘッダーフォルダーのパスは通常、「MyLibraryOrFramework / Headers」です(たとえば、Cocoaのフレームワークの内部を確認してください)。

そして最後に、本当に再利用可能でシームレスなものが必要な場合は、静的ライブラリ(ほぼ同様)の代わりにフレームワークを使用することをお勧めします。

この細かい答えを見て、必要なものに完全に適合する理由を理解してください:=> https://stackoverflow.com/a/6389802/1075192

Voilà、この回答が少し役に立ったことを願っています。

于 2012-05-21T12:03:31.430 に答える