O que é o formato de ficheiro PLIST?
Arquivos no formato .plist são arquivos de configurações que armazenam informações de configuração e propriedades para muitos programas no ambiente macOS. Eles também são chamados de arquivos de preferência. Arquivos .plist frequentemente armazenam configurações de usuário e dados de aplicativos, e são um elemento padrão do sistema Core Foundation da Apple - usado no macOS, iOS, iPadOS e outras plataformas Apple.
Arquivos .plist podem ser armazenados usando dois métodos - como texto ou binário. A forma de texto usa XML, que mantém o conteúdo do arquivo ordenado e legível por humanos. Arquivos armazenados como texto podem ser visualizados e editados usando qualquer editor de texto; no entanto, programas dedicados, como o editor de Property List integrado do Xcode, facilitam a edição. A forma binária (reconhecida pelos magic bytes bplist00 no início do arquivo) é mais compacta e é comumente gravada pelo próprio sistema operacional.
Arquivos .plist podem ser facilmente convertidos entre os formatos de texto e binário usando a linha de comando e o comando plutil. Os comandos de conversão são:
- formato binário para XML:
plutil -convert xml1 file.plist - formato XML para binário:
plutil -convert binary1 file.plist
O nome convencional para a lista de propriedades primária de um app é Info.plist. Sempre considere se os nomes das chaves nos arquivos .plist usam letras maiúsculas, pois eles são sensíveis a maiúsculas e minúsculas (case-sensitive) quando lidos pelo sistema. Formatos relacionados incluem .mobileconfig para perfis de configuração de dispositivos e .strings para dados de localização.
Segurança e proteção
RISCO: LOWPlists são dados, não código executável, portanto não executam nada por si mesmos. O risco real é de corrupção, não malware: editar manualmente as preferências de um app ou o Info.plist com um tipo ou chave errada pode impedir o app de iniciar ou se comportar corretamente. Faça backup do arquivo primeiro e, no macOS, prefira o comando «defaults» em vez de editar plists de preferência ativos (o cfprefsd pode sobrescrever alterações manuais). Plists dentro de perfis de configuração (.mobileconfig) podem alterar as configurações de segurança do dispositivo, portanto, instale apenas perfis de fontes em que você confia.
Detalhes do formato
em resumoProgramas que abrem arquivos PLIST
Detalhes técnicos
especificação profunda| Variantes do formato | Duas codificações compartilham a extensão `.plist`: XML (baseado em texto) e binário (`bplist`) |
| Magic bytes binários | `bplist00` (8 bytes, ASCII) no deslocamento de byte 0; ausente na variante XML |
| Tipo MIME | `application/x-plist` |
| Elemento raiz XML | `<plist version="1.0">` precedido por uma declaração `<!DOCTYPE plist ...>` |
| Tipos de dados escalares | `string`, `integer`, `real`, `true`/`false` (booleano), `date` (ISO 8601), `data` (bytes brutos) |
| Tipos de coleção | `array` (lista ordenada) e `dict` (mapa chave-valor); ambos suportam aninhamento arbitrário |
| Estrutura do formato binário | Tabela de objetos + tabela de deslocamento + trailer fixo de 32 bytes; o trailer registra a contagem de objetos e a posição da tabela de deslocamento |
| Codificação Base64 | Elementos XML `<data>` codificam blobs binários como Base64; o formato binário armazena bytes brutos diretamente |
| Codificação de texto (forma XML) | UTF-8 (padrão) ou UTF-16 com BOM; declarado na instrução de processamento XML |
| Sensibilidade a maiúsculas nas chaves | Nomes de chaves Dict são case-sensitive; `CFBundleIdentifier` e `cfbundleidentifier` são tratados como chaves distintas |
| Locais comuns (macOS) | Pacotes de apps (`Info.plist`), preferências do usuário (`~/Library/Preferences/`), daemons de inicialização e configuração do sistema |
| Ferramenta de conversão | `plutil` (integrado ao macOS); valida, converte e modifica arquivos `.plist` a partir da linha de comando |
| Formato ASCII legado | Existe uma terceira sintaxe ASCII NeXTSTEP usando delimitadores `{` / `(`; o macOS pode analisá-la, mas raramente a produz hoje em dia |
| Uso de Entitlements | A estrutura `.plist` é reutilizada para arquivos `.entitlements` que declaram permissões de sandbox e capacidades durante a assinatura de código |
| Requisito iOS/iPadOS | Todo pacote de app iOS e iPadOS requer um `Info.plist` declarando o ID do pacote, nome de exibição, capacidades do dispositivo e strings de uso de privacidade |
| Lançado | NeXTSTEP (late 1980s); current XML/binary forms with Mac OS X 10.0 (2001) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | developer.apple.com |
Conversões de PLIST
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PLIST.