What is the PLIST file format?
Files in the .plist format are settings files that store configuration and property information for many programs in the macOS environment. They are also called preference files. .plist files often store user settings and application data, and are a standard element of Apple's Core Foundation system - used across macOS, iOS, iPadOS and other Apple platforms.
.plist files can be stored using two methods - as text or binary. The text form uses XML, which keeps file content ordered and human-readable. Files stored as text can be viewed and edited using any text editor; however, dedicated programs such as Xcode's built-in Property List editor make editing them easier. The binary form (recognized by the magic bytes bplist00 at the start of the file) is more compact and is commonly written by the operating system itself.
.plist files can be easily converted between the text and binary formats using the command line and the plutil command. The conversion commands are:
- binary format into XML:
plutil -convert xml1 file.plist - XML format into binary:
plutil -convert binary1 file.plist
The conventional name for an app's primary property list is Info.plist. Always consider whether key names in .plist files use capital letters, because they are case-sensitive when read by the system. Related formats include .mobileconfig for device configuration profiles and .strings for localization data.
Security & safety
RISK: LOWPlists are data, not executable code, so they don't run anything by themselves. The realistic risk is breakage, not malware: hand-editing an app's preferences or Info.plist with a wrong type or key can stop the app launching or behaving correctly. Back up the file first, and on macOS prefer the 'defaults' command over editing live preference plists (cfprefsd may overwrite manual changes). Plists inside configuration profiles (.mobileconfig) can change device security settings, so only install profiles from sources you trust.
Format details
in a nutshellPrograms that open PLIST files
Technical details
deep spec| Format variants | Two encodings share the `.plist` extension: XML (text-based) and binary (`bplist`) |
| Binary magic bytes | `bplist00` (8 bytes, ASCII) at byte offset 0; absent in the XML variant |
| MIME type | `application/x-plist` |
| XML root element | `<plist version="1.0">` preceded by a `<!DOCTYPE plist ...>` declaration |
| Scalar data types | `string`, `integer`, `real`, `true`/`false` (boolean), `date` (ISO 8601), `data` (raw bytes) |
| Collection types | `array` (ordered list) and `dict` (key-value map); both support arbitrary nesting |
| Binary format structure | Object table + offset table + fixed 32-byte trailer; trailer records object count and offset-table position |
| Base64 encoding | XML `<data>` elements encode binary blobs as Base64; binary format stores raw bytes directly |
| Text encoding (XML form) | UTF-8 (default) or UTF-16 with BOM; declared in the XML processing instruction |
| Key case sensitivity | Dict key names are case-sensitive; `CFBundleIdentifier` and `cfbundleidentifier` are treated as distinct keys |
| Common locations (macOS) | App bundles (`Info.plist`), user preferences (`~/Library/Preferences/`), launch daemons and system configuration |
| Conversion tool | `plutil` (built into macOS); validates, converts, and modifies `.plist` files from the command line |
| Legacy ASCII format | A third NeXTSTEP ASCII syntax using `{` / `(` delimiters exists; macOS can parse it but rarely produces it today |
| Entitlements use | The `.plist` structure is reused for `.entitlements` files that declare sandbox and capability permissions during code signing |
| iOS/iPadOS requirement | Every iOS and iPadOS app bundle requires an `Info.plist` declaring bundle ID, display name, device capabilities and privacy usage strings |
| Released | NeXTSTEP (late 1980s); current XML/binary forms with Mac OS X 10.0 (2001) |
| Open standard | Yes · royalty-free |
| Specification | developer.apple.com |
PLIST conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about PLIST files.