Perché uno script di bash eseguito direttamente non ha bisogno di permessi utente, ma un file .app che esegue lo script ha bisogno di loro?

4

Ho uno script di bash myscript che carica un codice Apple per richiedere un'interfaccia grafica all'utente, per chiedere la sua password.

  • Se eseguo direttamente il file bash, al di fuori di un pacchetto .app, può farlo senza il prompt di sistema do you want to allow this program to access...[stuff]?

  • Ma se inserisco lo stesso file bash all'interno di un pacchetto .app (con lo stesso nome dello script), e faccio doppio clic sul file .app, verrà prima visualizzato il prompt di sistema per chiedere l'autorizzazione dell'utente . Non ho aggiunto nessun diritto speciale all'app.

Esiste un collegamento che spiega in che modo una sicurezza .app è diversa per l'esecuzione di uno script rispetto alla riga di comando?

    
posta Johnny Pralo 16.12.2018 - 17:29
fonte

1 risposta

5

In entrambi i casi lo script viene avviato da un'app. In un caso l'app è Terminal e ha le autorizzazioni necessarie. La tua app non funziona a questo punto.

Questa è una modifica in 10.14, descritta nelle note sulla versione :

Sending Apple events from an app—including script applets—now requires user approval. The list of currently approved apps can be viewed and edited in the Automation category in the Privacy tab in System Preferences > Security & Privacy. If an event is blocked because the user didn’t approve that app, the event will fail with the error code: -1743 (": Not authorized to send Apple events to "). An event can be preflighted using AEDeterminePermissionToAutomateTarget(::::).

Mojave ha introdotto controlli molto rigidi su Apple Event (il nucleo di AppleScript), che ha notevolmente complicato l'automazione. Michael Tsai ha aggregato molte discussioni utili sui problemi.

Vedi anche: com.apple.iTunes AEDeterminePermissionToAutomateTarget è sempre di ritorno - 600

    
risposta data 16.12.2018 - 17:43
fonte

Leggi altre domande sui tag