2

サブプロジェクトで構成されるフレームワークを作成しようとしています。各サブプロジェクトは静的ライブラリとバンドルです。

これらの静的ライブラリをフレームワークであるメイン プロジェクトに含めています。また、メイン プロジェクトにバンドルを含める必要があります。

次の画像は私の構造を説明でき ます https://drive.google.com/file/d/0B3tzx8whq3EvaS1JVmV0Mnl5Y3M/view?usp=sharing

注:ビルドフェーズスクリプトを使用してバンドルをコピーすることにより、サブプロジェクトからメイン出力フォルダーにバンドルを追加しています

したがって、出力はヘッダーとバンドルを含むフレームワークとしてパッケージ化されます。私の質問は次のとおりです。実行時に特定のバンドルにアクセスする方法は? 顧客に各バンドルをコピーさせずに?

すべてのバンドルを 1 つのバンドルにマージできますか? 多くのバンドルを含むバンドルを意味しますか? はいの場合、サブバンドルでファイルを使用する方法は?

どうもありがとう

4

1 に答える 1

2

最初にバンドル内にバンドルを含めることができるので、ユーザーはすべてのバンドルをコピーする必要はなく、メインのバンドルだけをコピーする必要はありません。

次のように、バンドル内の任意のバンドルに到達できます。

NSBundle *mainBundle = [NSBundle bundleForClass:[self class]];
NSBundle *bundle = [NSBundle bundleWithURL:[mainBundle URLForResource:@"myMainBundle" withExtension:@"bundle"]];

したがって、myMainBundle.bundle という名前のバンドル内の任意のバンドルにアクセスする場合は、次のようにパスを取得できます。

NSString *subBundlePath =[bundle pathForResource:@"subBundle" ofType:@"bundle"];

Budle 内にバンドルをコピーするには、ビルド フェーズ スクリプトから行うことができ、コピーするパスをメイン バンドルに設定します。

于 2015-02-18T11:49:51.540 に答える