NSRunningApplication terminate() возвращает false

Создание приложения 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(),

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

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

Спасибо!

1 ответ

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

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

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

Другие вопросы по тегам