この質問を続けます。
フレームワークに埋め込まれたコマンドラインユーティリティがあります。このユーティリティは、サードパーティが一部の処理を処理するために使用します。そのユーティリティを使用できない方法はありません。
私の問題は、自分のユーティリティをディスク上で見つける方法がわからないことです。メインアプリ内のフレームワークにバンドルされていますが、正しいパスを取得する方法がわかりません。
停止しますか?
この質問を続けます。
フレームワークに埋め込まれたコマンドラインユーティリティがあります。このユーティリティは、サードパーティが一部の処理を処理するために使用します。そのユーティリティを使用できない方法はありません。
私の問題は、自分のユーティリティをディスク上で見つける方法がわからないことです。メインアプリ内のフレームワークにバンドルされていますが、正しいパスを取得する方法がわかりません。
停止しますか?
.frameworkのファイルに適切なバンドル識別子(CFBundleIdentifier
)エントリを設定した場合、のメソッドを使用してフレームワークを表すバンドルを取得し、を使用して実行可能ファイルへのパスを取得できます。フレームワークに一意のバンドル識別子(メインのアプリバンドルのバンドル識別子とは異なる)を指定してください。Info.plist
NSBundle
bundleWithIdentifier:
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:@""];