簡體   English   中英

從Java運行AppleScript時“不允許輔助訪問”錯誤

[英]“is not allowed for assistive access” error when running AppleScript from Java

我有一個Jenkins配置,使用Maven為OS X應用程序執行Java測試。 當我嘗試運行一些需要輔助訪問的AppleScript時,會出現不同的錯誤。 所以我試圖以兩種方式執行AppleScript:

  1. 使用ScriptEngine

    ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName(“AppleScriptEngine”); engine.eval(腳本);

在這種情況下,腳本執行失敗並顯示錯誤:發生了類型-10810的錯誤。

  1. 調用osascript 在這種情況下,錯誤看起來像:系統事件出錯:osascript不允許輔助訪問。 (-1719)

在可訪問性列表中,我有以下內容:SystemUIServer,腳本編輯器,osascript,java,mvn,bash,終端。 在腳本編輯器中運行腳本或從終端運行osascript時,腳本通過而沒有任何錯誤。

有什么建議我應該檢查一下嗎?

我想你回答了自己的問題。 您可以允許腳本編輯器(以及其他內容)的輔助訪問。 它在腳本編輯器中工作正常。

您可以嘗試添加其他應用程序以進行輔助訪問。 如果腳本編輯器不能滿足您的需要,這可能是一個選項。

在此輸入圖像描述

我之前通過使用tccutil.py將osascript插入TCC.db來解決這個問題

安裝后我將tccutil.py鏈接到路徑中。

sudo ln -s /source/tccutil/tccutil.py /usr/bin/tccutil.py 

ls -l /usr/bin/tccutil.py 
lrwxr-xr-x  1 root  wheel  26 30 Dec 14:57 /usr/bin/tccutil.py -> /source/tccutil/tccutil.py

然后允許osascript訪問控制您的計算機使用以下compand

sudo tccutil.py --insert /usr/bin/osascript

我甚至在以后再次發生問題時添加了腳本。

sudo tccutil.py --insert $(pwd)/transcribe-audio-to-text.js

失敗所以我重新啟動哪個工作:-)

transcribe-audio-to-text.js目前使用系統事件使TextEdit能夠保存文本文件。 它是虛擬助手的一部分,在20160105非常alpha,但來源很有趣。 虛擬助理

我發現除了osascript本身,我有時需要添加調用osascript的進程的父進程,無論錯誤消息是什么。 有時我也要加上祖父母的過程。

特別是,/ bin / bash不會調用任何輔助API,但OSX希望它列出,即使osascript也被列出,我也必須添加TeamCity的agent.jar。

因此,嘗試添加.jar文件,並查看ScriptEngine是否使用您還需要啟用的中間代碼執行程序。

請注意,如果更改二進制文件,您可能必須刪除並添加條目(我認為OSX在其數據庫條目的最終二進制條目中維護某種校驗和)。

另一種解決方法是使用腳本編輯器編寫AppleScript,將其另存為獨立應用程序,並為該應用程序提供輔助訪問。 然后,您可以根據需要從其他環境(如Java應用程序或Automator工作流程)運行應用程序。

另見: https//apple.stackexchange.com/a/346306/264883

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM