Apple权限地狱:osascript和可访问性(辅助访问)

时间:2019-02-07 16:39:20

标签: macos applescript permission-denied

Apple权限地狱:osascript和可访问性(辅助访问)。

错误:osascript不允许辅助访问。 (-1719)

我在名为QuickenUpdate.scpt的文件中有一个单行脚本

在脚本编辑器中运行(有效):

tell application "System Events" to tell process "Quicken" to click menu item "Update all Online Accounts" of menu "Accounts" of menu bar item "Accounts" of menu bar 1

在终端中运行(有效):

/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt

我有一个Shell脚本(QU.sh)来运行它。

#!/bin/bash
. ~/.bashrc
/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt 2>&1
exit 0

如果我从BBEdit内部运行QU.sh,它将起作用。

如果我从Terminal运行QU.sh,它将起作用。

如果我尝试通过launchd运行它,它将失败并显示:osascript不允许辅助访问。 (-1719)。

启动plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>Sec_Stocks_QuickenUpdate.job</string>
  <key>Program</key>
  <string>/Deployment/bin/Stocks-1.01.03/bin/QU.sh</string>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>9</integer>
    <key>Minute</key>
    <integer>45</integer>
  </dict>
</dict>
</plist>

您不能将osascript添加到辅助访问中,因为它不是应用程序!

极其令人沮丧的是,我确实在几周前就开始使用它了,但不记得是怎么回事。

我必须对项目进行一些更改并重新部署(它是使用ANT脚本构建和部署的较大项目的一部分)。

要想使新版本正常工作,您必须跳过箍圈这一事实真是荒谬。

到底该如何解决这种权限?

1 个答案:

答案 0 :(得分:0)

经过反复试验...

要使用“系统事件”来控制应用程序(例如:加快),外壳程序脚本和目标应用程序都需要位于“系统偏好设置”的“隐私/可访问性”列表中。 Shell脚本无法手动添加。

在“系统偏好设置”中手动添加目标应用程序。保持列表打开,然后通过启动运行Shell脚本(我使用“启动控制”应用程序运行作业)。

作业将失败,但是shell脚本现在应该在“辅助功能”列表中。选中它(将其打开),然后脚本应执行OK。