2

ラッパー アプリケーション内に (いくつかの追加ファイルと共に) バンドルしたいアプリケーションがあります。

文字通り、私がやりたいことは、ラッパー アプリケーションにリソース ファイルを起動させることだけです (つまり、次のように入力したかのように)。

/path/to/Resources/Bundled.app/Contents/MacOS/executable

ターミナルに。

わかる?これは簡単なはずだと思っていましたが、これを行う簡単な方法を見つけることができませんでした.控えめに言っても、私のココアプログラミングは限られています.

前もって感謝します!

4

4 に答える 4

3

1 つの方法として、ラップされた「アプリケーション」が単なるシェル スクリプトか何かである場合は、Platypusを使用します。

それが実際のアプリケーション (.app バンドル) である場合、なぜアプリ A はアプリ B を起動するだけなのですか? そもそもアプリ A があるのはなぜですか?

于 2010-01-30T23:23:01.957 に答える
1

外部プログラムはNSBundleを使用して、外部プログラムのバンドル内で内部プログラムを見つけることができます。

内部プログラムを実行するには:アプリケーションの場合は、LaunchServicesまたはNSWorkspaceを使用します。コマンドラインツールの場合は、NSTaskを使用します。

于 2010-01-31T16:24:14.607 に答える
1

後世のために(そして、それが他の人に役立つ場合は、ここに私が使用した完全なコードがあります(AppDelegate.mファイル内):

NSString *appName = @"";
NSString *bundledApp = [[NSBundle bundleWithPath:[[NSBundle
                                                           mainBundle] pathForResource:appName ofType:@"app"]]
                          bundlePath];
NSWorkspace *launchApp = [[NSWorkspace alloc] init];
NSLog(@"Launching %s", bundledApp);
[launchApp launchApplication:bundledApp];
[launchApp release];

// Make Launcher terminate (if it serves no other purpose)
[NSApp terminate:nil];
于 2010-06-19T12:43:44.630 に答える
1

これに関するブログ投稿があります: Turn any shell script into a double-clickable app . エントリには「空のアプリバンドルから始める」と記載されています...私の記憶が正しければ、記載されているPashuaツールを使用して取得できます...

于 2010-01-30T15:18:53.303 に答える