首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苹果许可地狱: osascript和可访问性(Assistive Access)

苹果许可地狱: osascript和可访问性(Assistive Access)
EN

Stack Overflow用户
提问于 2019-02-08 00:39:20
回答 1查看 945关注 0票数 2

苹果许可地狱: osascript和可访问性(Assistive Access)。

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

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

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

代码语言:javascript
复制
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

在终端中运行(works):

代码语言:javascript
复制
/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt

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

代码语言:javascript
复制
#!/bin/bash
. ~/.bashrc
/usr/bin/osascript /Deployment/bin/Stocks-1.01.03/scripts/QuickenUpdate.scpt 2>&1
exit 0

如果我从BBEdit内部运行QU.sh,它就能工作。

如果我从终端运行QU.sh,它可以工作。

如果我尝试通过launchd运行它,它会失败,并显示: osascript is not allowed assistive access。(-1719)。

启动plist:

代码语言:javascript
复制
<?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脚本构建和部署的更大项目的一部分)。

事实是,你必须跳过圈套才能让一个新的构建工作,这是荒谬的。

到底怎么才能把这个许可地狱理清呢?

EN

回答 1

Stack Overflow用户

发布于 2019-02-08 05:00:09

经过大量的试验和错误。

要使用“系统事件”来控制应用程序(例如: Quicken),shell脚本和目标应用程序都需要在系统首选项的隐私/可访问性列表中。无法手动添加shell脚本。

在系统首选项中手动添加目标应用程序。保持列表打开,然后通过launchd运行shell脚本(我使用‘Launch Control’应用程序来运行作业)。

作业将失败,但是shell脚本现在应该在可访问性列表中。选中它(打开它),然后脚本应该可以执行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54578125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档