この質問を続けます。
フレームワークに埋め込まれたコマンドラインユーティリティがあります。このユーティリティは、サードパーティが一部の処理を処理するために使用します。そのユーティリティを使用できない方法はありません。
私の問題は、自分のユーティリティをディスク上で見つける方法がわからないことです。メインアプリ内のフレームワークにバンドルされていますが、正しいパスを取得する方法がわかりません。
停止しますか?
この質問を続けます。
フレームワークに埋め込まれたコマンドラインユーティリティがあります。このユーティリティは、サードパーティが一部の処理を処理するために使用します。そのユーティリティを使用できない方法はありません。
私の問題は、自分のユーティリティをディスク上で見つける方法がわからないことです。メインアプリ内のフレームワークにバンドルされていますが、正しいパスを取得する方法がわかりません。
停止しますか?
.frameworkのファイルに適切なバンドル識別子(CFBundleIdentifier)エントリを設定した場合、のメソッドを使用してフレームワークを表すバンドルを取得し、を使用して実行可能ファイルへのパスを取得できます。フレームワークに一意のバンドル識別子(メインのアプリバンドルのバンドル識別子とは異なる)を指定してください。Info.plistNSBundlebundleWithIdentifier:pathForResource:ofType:
たとえば、のが含まれているアプリバンドルCoolApp.appがあるCFBundleIdentifierとしcom.blah.CoolAppます。にあるTextureKit.frameworkフレームワークがありCoolApp.app/Contents/Frameworks/TextureKit.framework、CFBundleIdentifierのがありcom.blah.TextureKit.frameworkます。のResourcesフォルダ内にTextureKit.frameworkは、という名前の実行可能ファイルがありますtextureUtility。次のコードを使用して、次の場所へのフルパスを取得できますtextureUtility。
NSString *path = [[NSBundle bundleWithIdentifier:@"com.blah.TextureKit.framework"]
pathForResource:@"textureUtility"
ofType:@""];