NSRunningApplication terminate () возвращает false - PullRequest
0 голосов
/ 24 октября 2018

Создание приложения MacOS, которое получает текущий активный NSRunningApplication.

public func findActiveApp() -> NSRunningApplication? {
    for app in NSWorkspace.shared.runningApplications {
        if app.isActive {
            return app
        }
    }
    return nil
}

После этого я просто пытаюсь завершить приложение, используя

let app = findActiveApp()
app.terminate()

Это не завершаетсяприложение и возврат false (это для любого приложения, а не только для конкретного).

Я также пытался app.forceTerminate().

Обратите внимание, что я уже добавил свое приложение в Accessibilityсписок в Системных настройках.

Есть ли у вас какие-либо подсказки, что может быть причиной этого?

Спасибо!

1 Ответ

0 голосов
/ 24 октября 2018

Для изолированного приложения вам нужно добавить разрешение com.apple.security.teilitary-exception.apple-events, например:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
    <string>com.my.company.AppId</string>
</array>

Обратите внимание, что оно можетбыть отклоненным из заявки в магазине приложений, если у вас нет веского объяснения необходимости предоставления права.

...