0

この質問を続けます。

フレームワークに埋め込まれたコマンドラインユーティリティがあります。このユーティリティは、サードパーティが一部の処理を処理するために使用します。そのユーティリティを使用できない方法はありません。

私の問題は、自分のユーティリティをディスク上で見つける方法がわからないことです。メインアプリ内のフレームワークにバンドルされていますが、正しいパスを取得する方法がわかりません。

停止しますか?

4

1 に答える 1

1

.frameworkのファイルに適切なバンドル識別子(CFBundleIdentifier)エントリを設定した場合、のメソッドを使用してフレームワークを表すバンドルを取得し、を使用して実行可能ファイルへのパスを取得できます。フレームワークに一意のバンドル識別子(メインのアプリバンドルのバンドル識別子とは異なる)を指定してください。Info.plistNSBundlebundleWithIdentifier:pathForResource:ofType:

たとえば、のが含まれているアプリバンドルCoolApp.appがあるCFBundleIdentifierとしcom.blah.CoolAppます。にあるTextureKit.frameworkフレームワークがありCoolApp.app/Contents/Frameworks/TextureKit.frameworkCFBundleIdentifierのがありcom.blah.TextureKit.frameworkます。のResourcesフォルダ内にTextureKit.frameworkは、という名前の実行可能ファイルがありますtextureUtility。次のコードを使用して、次の場所へのフルパスを取得できますtextureUtility

NSString *path = [[NSBundle bundleWithIdentifier:@"com.blah.TextureKit.framework"]
                           pathForResource:@"textureUtility"
                                    ofType:@""];
于 2013-03-25T22:09:11.267 に答える