我正在寻找一种方法来打开我的其他应用程序参数,并找到very good post here,但在我的开发人员机器上,我有10个测试/ brach /发布版本的应用程序,只有一个当前的稳定版本在/应用程序文件夹中。
这段代码:
NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
NSURL *url = [NSURL fileURLWithPath:[workspace fullPathForApplication:@"My Application"]];
NSURL *url = [workspace URLForApplicationWithBundleIdentifier:@"it.my_company.my_application"];
指向错误的测试/分支/发布版本。如何在/ Application文件夹中找到我的应用程序的URL,或者至少在与当前正在运行的应用程序相同的级别找到URL?
答案 0 :(得分:1)
您可以使用NSTask
消息:setLaunchPath
或launchedTaskWithLaunchPath
为您的其他应用提供显式路径。
类似的东西:
NSArray *args = [NSArray arrayWithObjects:nil];
[NSTask launchedTaskWithLaunchPath:@"/Applications/My Application.app/Contents/MacOS/My Application" arguments:args];
答案 1 :(得分: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.