2015-06-24 15 views
11

Ho una configurazione Jenkins che esegue i test Java per l'app OS X utilizzando Maven. E quando sto cercando di eseguire un AppleScript che richiede l'accesso di assistenza per esso, vengono visualizzati diversi errori. Così ho provato ad eseguire AppleScript in due modi:"non consentito per l'accesso assistito" quando si esegue AppleScript da Java

  1. Utilizzando ScriptEngine:

    ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName ("AppleScriptEngine"); engine.eval (script);

In questo caso l'esecuzione dello script ha esito negativo con errore: Si è verificato un errore di tipo -10810.

  1. Chiamare osascript. In questo caso, l'errore è simile a: Gli eventi di sistema hanno ricevuto un errore: l'accesso assistito non è consentito. (-1719)

Nella lista di accessibilità ho le seguenti cose: SystemUIServer, Script Editor, osascript, java, mvn, bash, Terminal. Quando si esegue script in Script Editor o in osScript da Terminale, lo script è passato senza errori.

Qualche suggerimento, che altro dovrei controllare?

risposta

7

Penso che tu risponda alla tua stessa domanda. È possibile consentire l'accesso assistivo per Script Editor (tra le altre cose). Funziona bene in Script Editor.

È possibile provare e aggiungere altre applicazioni per ottenere l'accesso di assistenza. Questa potrebbe essere un'opzione se Script Editor non ti dà quello che vuoi.

enter image description here

+3

Nella mia domanda è possibile visualizzare l'elenco di app nel mio elenco di accessibilità. Script Editor già lì. Sfortunatamente, aggiungere Script Editor, così come altre app, non è la risposta al mio problema. Quindi la mia domanda era: cos'altro potrei perdere dalla mia lista? –

+0

Ah ok. Bene, penso che l'altra parte della mia risposta rimane vera, però. Non hai perso nulla. Se funziona in Script Editor dovrebbe essere ok. –

1

ho risolto qualcosa di simile a questo problema prima inserendo osascript nel TCC.db utilizzando tccutil.py

Dopo l'installazione ho linkato tccutil.py nel percorso.

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 

Poi per consentire l'accesso osascript per controllare il computer utilizzare il seguente COMPAND

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

Ho anche aggiunto il copione, quando il problema è accaduto di nuovo in seguito.

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

che non è riuscito così ho ripartito che ha lavorato :-)

trascrivere-audio-to-text.js attualmente utilizza eventi di sistema per rendere TextEdit essere in grado di salvare un file di testo. Fa parte dell'assistente virtuale molto alfa 20160105 ma la fonte è interessante. virtual-assistant

+2

"brew install tccutil; sudo tccutil --insert/usr/bin/osascript" ha fatto il lavoro per me. molte grazie per il suggerimento. – user2707001

1

Trovo che a volte devo aggiungere il genitore del processo che chiama osascript, oltre allo stesso osScript, indipendentemente da ciò che dice il messaggio di errore. A volte devo aggiungere anche il processo dei nonni.

In particolare,/bin/bash non chiama alcuna API di assistenza, ma OSX lo desidera elencato anche se è presente anche l'osascript e ho dovuto aggiungere anche agent.jar di TeamCity.

Quindi prova ad aggiungere il tuo file .jar, e guarda se ScriptEngine utilizza un esecutore di codice intermedio che dovrai anche abilitare.

Attenzione che sarà probabilmente necessario rimuovere e aggiungere le voci se si modifica il file binario (penso che OSX mantiene una sorta di checksum nella voce binaria finale nella sua voce di database).

Problemi correlati