macOS / iOS Plist Viewer

View binary or XML plist files from macOS or iOS apps in your browser

View Apple property list files in your browser — both XML plists and binary bplist00 files. Renders a readable tree of keys, dictionaries, arrays, dates and data. Parsed locally with no upload, ideal for inspecting app preferences. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What is the difference between XML and binary plists?

Both store the same data, but XML plists are human-readable text starting with a <plist> tag, while binary plists begin with the magic bytes bplist00 and pack everything compactly. macOS and iOS often store preferences and caches as binary for speed.

The macOS / iOS Plist Viewer opens Apple property list files and renders their contents as a clear, navigable tree. Property lists are Apple’s standard format for storing structured configuration and app data — preferences, Info.plist metadata, cached state and more. They come in two flavours, human-readable XML and compact binary, and this tool handles both directly in the browser.

How it works

The viewer first checks the file’s leading bytes. If they spell bplist, it parses the binary format; otherwise it parses XML.

For XML plists, the browser’s built-in DOMParser reads the document, and the tool maps each element to a value: <true/> and <false/> become booleans, <integer> and <real> become numbers, <string> and <date> become their text, <array> becomes a list, and <dict> pairs alternating key and value elements.

For binary plists, the format is more involved. A 32-byte trailer at the end of the file records the offset-table entry size, the object-reference size, the number of objects, the index of the top object and where the offset table starts. Each object’s first byte is a marker whose high nibble is the type (integer, real, date, data, ASCII or UTF-16 string, array, dictionary) and whose low nibble is either a small length or a flag to read an extended length. The tool follows object references recursively to rebuild the full tree.

Tips and notes

  • Binary dates use seconds since 2001-01-01, not the Unix epoch — the tool converts them for you.
  • Strings can be stored as ASCII or UTF-16 big-endian; both are decoded correctly.
  • Need machine-readable output instead of a tree? Use the companion Plist to JSON converter.

Everything runs locally in your browser — nothing is uploaded.

Where plist files live on macOS and iOS

Knowing where to find plists saves time when investigating app behaviour or troubleshooting preferences:

macOS system and app preferences:

  • ~/Library/Preferences/ — per-user preferences for most apps, keyed by bundle ID (for example com.apple.finder.plist).
  • /Library/Preferences/ — system-wide preferences requiring admin access.
  • ~/Library/Containers/[bundle-id]/Data/Library/Preferences/ — sandboxed Mac App Store apps store their preferences inside their container.

iOS (via device backup or Xcode):

  • iOS apps store plists in their app sandbox, accessible through Xcode’s Devices window by downloading the app container, or in an iTunes/Finder backup at ~/Library/Application Support/MobileSync/Backup/.

Info.plist — the app manifest:

  • Every macOS and iOS app bundle contains an Info.plist at its root that declares the bundle ID, display name, supported device types, permissions, URL schemes, and minimum OS version. Inspecting this file is useful when analysing a third-party app.

Editing preferences from the command line (macOS)

For those who prefer the terminal, macOS ships with the defaults command for reading and writing preference plists. For example, to read a preference:

defaults read com.apple.finder ShowHardDrivesOnDesktop

And to convert a binary plist to readable XML so you can open it in any text editor:

plutil -convert xml1 ~/Library/Preferences/com.apple.finder.plist -o /tmp/finder-prefs.xml

The -convert xml1 flag produces an XML plist; -convert json produces JSON. Both are useful when you want to diff preference files or import them into another tool.

Data type reference

Plist typeXML tagBinary marker (high nibble)Viewer display
Boolean true<true/>0x0 (value 0x09)true
Boolean false<false/>0x0 (value 0x08)false
Integer<integer>0x1numeric value
Real<real>0x2numeric value
Date<date>0x3ISO-8601 (converted from Apple epoch)
Data (bytes)<data>0x4byte count placeholder
String (ASCII)<string>0x5text
String (UTF-16)<string>0x6text
Array<array>0xAexpandable list
Dictionary<dict>0xDkey-value pairs