Sicurezza e privacy / Accessibilità che non aggiorna le autorizzazioni

1

Ho un pezzetto di mela che ho scritto che preme per me un paio di pulsanti per la finestra sullo schermo. In uso, viene visualizzato un popup che dice che è necessario concedere le autorizzazioni in 'Sicurezza e amp; Privacy - > Accessibilità'. La casella di controllo per abilitare le autorizzazioni non funziona; non è disattivato, semplicemente non ci vuole.

LamiacomprensioneècheilTCC.dbèl'implementazionesottostantedelleautorizzazionidiaccessibilità.Eccocomeapparelatabella"accesso" subito dopo aver tentato di avviare l'app: $ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'select * from access' kTCCServiceAccessibility|com.company.applet|0|0|1||

Ecco come appare la tabella dopo che provo a fare clic sulla casella di controllo per abilitare le autorizzazioni: $ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'select * from access' kTCCServiceAccessibility|com.company.applet|0|0|1|| kTCCServiceAccessibility|/Users/luser/Applications/applet.app|1|1|1||

Da ciò, la mia teoria è che il meccanismo di autorizzazione all'accessibilità sta vedendo l'app come due nomi diversi: com.company.applet vs percorso di installazione. Ma non so abbastanza su macOS per procedere con la risoluzione dei problemi. Qualcuno può aiutarmi a capire cosa sta succedendo? Qualcuno ha idee su come farlo funzionare?

Grazie!

Ulteriori dettagli:

Il mio processo di compilazione è di alimentare il mio applescript in osacompile, che genera il pacchetto ~ / Applications / applet.app. Quindi aggiungo manualmente CFBundleIdentifier con /usr/libexec/PlistBuddy -c 'Add :CFBundleIdentifier string "com.company.applet"' ~/Applications/applet.app/Contents/Info.plist . Se ignoro l'aggiornamento di CFBundleIdentifier, l'applicazione continua a non avere il controllo dell'accessibilità.

Posso creare il bundle in Script Editor e tutto funziona. Tuttavia, questa non è una soluzione desiderabile a lungo termine; come voglio mantenere tutto nel controllo della versione. Gli artefatti generati da Script Editor sono binari e quindi non adatti per git.

Infine, sembra che nelle versioni precedenti di macOS, avrei potuto modificare direttamente il TCC.db, ma ora tutte le mie scritture falliscono - altrove, ho visto questo attribuito a SIP. Non voglio disabilitare SIP.

    
posta Hefeweizen 29.09.2017 - 20:43
fonte

0 risposte

Leggi altre domande sui tag