Posizione del file di sistema che collega i ruoli con le app

0

RCDefaultApp può cambiare i cosiddetti "ruoli" macOS, ad es. cambia il gestore del protocollo mailto: . Questo è memorizzato nel seguente file:

defaults read ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist

LSHandlers = (
...
    LSHandlerRoleAll = "com.apple.mail";
    LSHandlerURLScheme = mailto;
...

Domanda: in quale file nel filesystem è definito come il valore impostato in LSHandlerRoleAll , ad es. com.apple.mail , è collegato al programma attuale che viene eseguito, ad es. "Mail.app"?

Metti diversamente, qual è il percorso completo dei file di sistema manipolati da RCDefaultApp?

    
posta forthrin 05.04.2018 - 09:20
fonte

1 risposta

1

Il percorso completo del file di sistema manipolato da RCDefaultApp è:

~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist

(cioè questo è il file che hai già menzionato nella tua domanda)

Questo è il file vero e proprio che Finder interroga (tramite LaunchServices) per trovare la preferenza globale per cui le applicazioni sono associate a determinati tipi di file.

Sembra che tu stia pensando che RCDefaultApp manipoli un altro file, che menziona esplicitamente "Mail.app" (cioè la cartella dell'app in realtà per l'applicazione). Non è così.

Invece Mail.app fornisce effettivamente queste informazioni al sistema operativo tramite il suo file Info.plist all'interno della cartella dell'applicazione. Questo viene scansionato quando l'applicazione viene aperta, in modo che il sistema sia a conoscenza dell'applicazione stessa e dei suoi tipi di file supportati.

All'interno del file Info.plist per Mail.app, troverai che "CFBundleIdentifier" per Mail.app è "com.apple.mail". Questo è il modo in cui le informazioni delle preferenze di LaunchServices sono "collegate" all'effettiva Mail.app.

Inoltre, definisce i tipi di contenuto supportati all'interno di Info.plist all'interno di CFBundleDocumentTypes, dove LSItemContentTypes include ad esempio com.apple.mail.emlx, com.apple.mail.mbox, ecc.

Ciò garantisce ad esempio che anche se sposti Mail.app in una cartella diversa, il sistema sarà comunque in grado di avviare Mail.app quando fai doppio clic su un file emlx nel Finder, ad esempio.

    
risposta data 05.04.2018 - 10:30
fonte

Leggi altre domande sui tag