NSRunningApplication终止()返回false

时间:2018-10-24 16:36:36

标签: swift macos nsrunningapplication

构建一个可获取当前活动NSRunningApplication的macOS应用。

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 个答案:

答案 0 :(得分:0)

对于沙盒应用程序,您需要添加“ com.apple.security.temporary-exception.apple-events”权利,例如:

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

不过请注意,除非您对授权的必要性有很好的解释,否则它可能会从应用商店提交中被拒绝。