Che cos'è il formato di file PLIST?
I file nel formato .plist sono file di impostazioni che memorizzano informazioni di configurazione e proprietà per molti programmi nell'ambiente macOS. Sono anche chiamati file delle preferenze. I file .plist spesso memorizzano le impostazioni dell'utente e i dati delle applicazioni e sono un elemento standard del sistema Core Foundation di Apple, utilizzato su macOS, iOS, iPadOS e altre piattaforme Apple.
I file .plist possono essere memorizzati utilizzando due metodi: come testo o binario. La forma testuale utilizza XML, che mantiene il contenuto del file ordinato e leggibile dall'uomo. I file memorizzati come testo possono essere visualizzati e modificati utilizzando qualsiasi editor di testo; tuttavia, programmi dedicati come l'editor Property List integrato in Xcode ne facilitano la modifica. La forma binaria (riconoscibile dai magic bytes bplist00 all'inizio del file) è più compatta ed è comunemente scritta dal sistema operativo stesso.
I file .plist possono essere facilmente convertiti tra i formati di testo e binario utilizzando la riga di comando e il comando plutil. I comandi di conversione sono:
- da formato binario a XML:
plutil -convert xml1 file.plist - da formato XML a binario:
plutil -convert binary1 file.plist
Il nome convenzionale per l'elenco delle proprietà primarie di un'app è Info.plist. Considera sempre che i nomi delle chiavi nei file .plist utilizzano lettere maiuscole, perché sono case-sensitive quando vengono letti dal sistema. I formati correlati includono .mobileconfig per i profili di configurazione del dispositivo e .strings per i dati di localizzazione.
Sicurezza e incolumità
RISCHIO: LOWI plist sono dati, non codice eseguibile, quindi non eseguono nulla da soli. Il rischio realistico è il malfunzionamento, non il malware: la modifica manuale delle preferenze di un'app o dell'Info.plist con un tipo o una chiave errati può impedire l'avvio o il corretto funzionamento dell'app. Esegui prima un backup del file e su macOS preferisci il comando «defaults» rispetto alla modifica manuale dei plist delle preferenze attive (cfprefsd potrebbe sovrascrivere le modifiche manuali). I plist all'interno dei profili di configurazione (.mobileconfig) possono modificare le impostazioni di sicurezza del dispositivo, quindi installa solo profili provenienti da fonti attendibili.
Dettagli del formato
in sintesiProgrammi che aprono file PLIST
Dettagli tecnici
specifiche approfondite| Varianti del formato | Due codifiche condividono l'estensione `.plist`: XML (basata su testo) e binaria (`bplist`) |
| Magic bytes binari | `bplist00` (8 byte, ASCII) all'offset 0; assenti nella variante XML |
| Tipo MIME | `application/x-plist` |
| Elemento root XML | `<plist version="1.0">` preceduto da una dichiarazione `<!DOCTYPE plist ...>` |
| Tipi di dati scalari | `string`, `integer`, `real`, `true`/`false` (booleano), `date` (ISO 8601), `data` (byte grezzi) |
| Tipi di collezione | `array` (elenco ordinato) e `dict` (mappa chiave-valore); entrambi supportano l'annidamento arbitrario |
| Struttura formato binario | Tabella oggetti + tabella offset + trailer fisso di 32 byte; il trailer registra il conteggio degli oggetti e la posizione della tabella degli offset |
| Codifica Base64 | Gli elementi XML `<data>` codificano i blob binari come Base64; il formato binario memorizza i byte grezzi direttamente |
| Codifica del testo (forma XML) | UTF-8 (predefinita) o UTF-16 con BOM; dichiarata nell'istruzione di elaborazione XML |
| Case sensitivity delle chiavi | I nomi delle chiavi Dict sono case-sensitive; `CFBundleIdentifier` e `cfbundleidentifier` sono trattati come chiavi distinte |
| Posizioni comuni (macOS) | Bundle di app (`Info.plist`), preferenze utente (`~/Library/Preferences/`), launch daemons e configurazione di sistema |
| Strumento di conversione | `plutil` (integrato in macOS); convalida, converte e modifica i file `.plist` dalla riga di comando |
| Formato ASCII legacy | Esiste una terza sintassi ASCII NeXTSTEP che utilizza i delimitatori `{` / `(`; macOS può analizzarla ma raramente la produce oggi |
| Uso degli Entitlements | La struttura `.plist` viene riutilizzata per i file `.entitlements` che dichiarano i permessi di sandbox e funzionalità durante la firma del codice |
| Requisito iOS/iPadOS | Ogni bundle di app iOS e iPadOS richiede un `Info.plist` che dichiari l'ID del bundle, il nome visualizzato, le funzionalità del dispositivo e le stringhe di utilizzo della privacy |
| Rilasciato | NeXTSTEP (late 1980s); current XML/binary forms with Mac OS X 10.0 (2001) |
| Standard aperto | Sì · royalty-free |
| Specifica | developer.apple.com |
Conversioni PLIST
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PLIST.