2

我正在寻找一种使用参数打开我的其他应用程序的方法,并在这里找到了一个非常好的帖子,但是在我的开发人员机器上,我的应用程序有 10 个测试/分支/发布版本,而 /Application 文件夹中只有一个当前稳定版本.

这两个代码:

NSWorkspace *workspace = [NSWorkspace sharedWorkspace];

NSURL *url = [NSURL fileURLWithPath:[workspace fullPathForApplication:@"My Application"]];
NSURL *url = [workspace URLForApplicationWithBundleIdentifier:@"it.my_company.my_application"];

指向错误的测试/分支/发布版本。如何在 /Application 文件夹中找到我的应用程序的 URL,或者至少是与我当前正在运行的应用程序处于同一级别的 URL?

4

2 回答 2

1

您可以使用NSTaskmessages:setLaunchPathlaunchedTaskWithLaunchPath为您的其他应用程序提供显式路径。

就像是:

NSArray *args = [NSArray arrayWithObjects:nil];
[NSTask launchedTaskWithLaunchPath:@"/Applications/My Application.app/Contents/MacOS/My Application" arguments:args];
于 2012-07-20T17:49:18.907 回答
1

这就是我出来使用的:

NSWorkspace *workspace = [NSWorkspace sharedWorkspace];

NSString *appPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
appPath = [appPath stringByAppendingPathComponent:@"MyApp.app"];

if (not [[NSFileManager defaultManager] fileExistsAtPath:appPath])
    appPath = @"/Applications/MyApp.app";

if (not [[NSFileManager defaultManager] fileExistsAtPath:appPath])
    appPath = [workspace fullPathForApplication:@"MyApp"];

if (not [[NSFileManager defaultManager] fileExistsAtPath:appPath]) {
    return NO;
}
else {
    // found it in some place, now can launch.
于 2012-07-23T14:27:01.473 回答