pka*_*amb 5 macos cocoa applescript entitlements appstore-sandbox
我试图从沙盒macOS应用程序打开系统偏好设置,以便用户可以手动启用某个偏好设置.
AppleScript的
activate将应用程序带到前端,必要时启动它.
我正在运行macOS 10.13.6和Xcode 10.0.部署目标设置为OS X 10.11.
我从沙盒应用程序运行以下AppleScript:
let script = """
tell application "System Preferences"
activate
set current pane to pane id "com.apple.preferences.extensions"
end tell
"""
let appleScript = NSAppleScript(source: script)
var errorInfo: NSDictionary? = nil
appleScript?.executeAndReturnError(&errorInfo)
Run Code Online (Sandbox Code Playgroud)
我还添加了一个脚本目标Sandbox Entitlement,使系统首选项能够显示窗格:
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.systempreferences</key>
<array>
<string>preferencepane.reveal</string>
</array>
</dict>
Run Code Online (Sandbox Code Playgroud)
一旦我添加了权利,这有点起作用.如果关闭系统首选项应用程序,则会启动它并打开正确的窗格.
该errorInfo词典是零,因此不会造成错误信息.
在控制台中,我看到一条消息,可能是不相关的日志垃圾邮件:
AppleEvents:收到mach msg,它不是getMemoryReference中预期的复杂类型.
但是,该应用程序不会激活."系统偏好设置"窗口未出现在前面.该应用程序导航到正确的选项卡,但不会作为activate状态的文档到达前台.它仍然在任何其他前景窗口后面.
在关闭"系统偏好设置"的情况下,应用程序会启动.但是,在您单击停靠图标之前,窗口不会添加到前景或背景中的屏幕上.然后出现窗口,已导航到正确的窗格.
是否还有其他需要的Sandbox Entitlements可以激活"系统偏好设置"窗口?
我建议您执行以下操作(这是我在 macOS Mojave 上测试的并且按预期工作)。
Script EditorNSAppleEventsUsageDescription)。| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |