Xcodeで静的ライブラリを作成しました。これは、他のプロジェクトで正常に使用できます。ただし、plistのようなリソースでは、プロジェクトが使用されるメインプロジェクトのライブラリで参照されているplistを含める必要があることがわかりました。
静的ライブラリプロジェクトでは、ターゲットの「バンドルリソースのコピー」フェーズにplistを含めています。私のコードでは、これが私がしていることです:
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *filePath = [mainBundle pathForResource:@"MyClassParams" ofType:@"plist"];
NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
mainBundleを使用していて、MyClassParams.plistがメインプロジェクトに含まれている場合、すべて問題ありません。MyClassParams.plistがライブラリプロジェクトに含まれている場合、それは機能しません。
[NSBundle mainBundle]が使用する間違った静的メソッドを参照していると仮定して、次のように置き換えました。
NSBundle *mainBundle = [NSBundle bundleForClass:[MyClass class]];
これもうまくいきませんでした。
それで、静的ライブラリにplistまたは他のリソースを含めることは可能ですか?または、libが使用されるプロジェクトに必要なものを含める必要がありますか?