проверка macOS, если приложение работает по пути - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть строка пути к приложению.Например, /Users/username/Applications/MyApp.app Все, что мне нужно, это проверить, работает ли он или нет.

Я пытался сравнить путь к пакету запущенных приложений с путем, который у меня есть:

-(BOOL)isApplicationAtPathRunning:(NSString *)applicationPath {
    for (NSRunningApplication * application in NSWorkspace.sharedWorkspace.runningApplications) {
        if ([application.bundleURL.absoluteString isEqualToString:applicationPath]) {
            return YES;
        }
    }

    return NO;
}

Но если приложение было перемещено в другую папку, application.bundleURL запущенного приложения будет старым.Пожалуйста, предложите, спасибо!

1 Ответ

0 голосов
/ 29 декабря 2018

Лучше проверить приложение по идентификатору пакета

-(BOOL)isApplicationWithBundleIdentifierRunning:(NSString *)bundleIdentifier {
    NSArray *applications = [NSRunningApplication runningApplicationsWithBundleIdentifier: bundleIdentifier];
    return applications.count > 0;
}
...