LLMpediaThe first transparent, open encyclopedia generated by LLMs

plist

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Apple Keynote Hop 5
Expansion Funnel Raw 53 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted53
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
plist
NameProperty List
DeveloperApple Inc.
Initial release1998
Latest releaseIntegrated across macOS, iOS
Operating systemmacOS, iOS, iPadOS, watchOS, tvOS
LicenseProprietary (platform), open formats (XML, JSON converters)

plist

Property lists are a serialized data representation used extensively within Apple Inc. ecosystems to store configuration, preferences, and structured data for Macintosh, iPhone, iPad, watchOS, and tvOS applications. Originating during the development of the NeXTSTEP system and preserved through the acquisition by Apple Inc., property lists evolved alongside APIs such as Cocoa and Foundation framework. They interoperate with system services like launchd, NSUserDefaults, and Xcode project settings.

Overview

Property lists serve as a lightweight, hierarchical serialization format favored for application preferences, resource catalogs, and interprocess configuration in macOS and iOS. Implementations integrate with classes and libraries in the Foundation framework, enabling developers using languages like Objective-C, Swift, and scripting languages to read and write structured data. System utilities and developer tools such as Xcode, Terminal, and plutil assist with validation, conversion, and debugging.

File formats and versions

Property lists exist in multiple on-disk encodings: a canonical human-readable XML variant standardized by Apple, a compact binary variant optimized for performance, and legacy ASCII key-value formats used in older releases of NeXTSTEP and early Mac OS X builds. The binary format was introduced to reduce storage and parsing overhead, complementing XML for interchange with tools like Safari and TextEdit that display or edit XML. Over successive system versions—through Mac OS X Panther, Mac OS X Leopard, and modern macOS—the serialization APIs have maintained backward compatibility while adding support for new primitive types and encoding refinements.

Data types and structure

Property lists represent a small set of primitive and composite types: ordered collections and dictionaries (associative arrays), strings, numbers, booleans, dates, binary data, and unique identifier-like values in some implementations. The top-level container is typically a dictionary or array, enabling nesting of dictionaries and arrays to model application state, entitlements, and configuration manifests. This structure underpins formats used by Info.plist for application metadata, provisioning profiles employed by Apple Developer program workflows, and serialized objects passed to services such as NSUserDefaults and Core Data exports.

Creation and editing tools

Developers and administrators create and edit property list files using graphical tools like Xcode's property list editor, and third-party editors integrated into IDEs such as AppCode. Command-line utilities—part of macOS developer toolchains—include converters and validators that interact with git-managed repositories, continuous integration systems like Jenkins or GitHub Actions, and scripting environments using Python, Ruby, or Perl. Text editors such as TextEdit, Sublime Text, and Visual Studio Code can manipulate XML plists, while binary formats are commonly handled via conversion utilities for readability during code reviews or debugging sessions.

Usage in Apple ecosystems

Within application bundles, plists encode metadata found in Info.plist files that declare an app's bundle identifier, supported document types, and entitlements referenced by App Store submission processes. System daemons and launch agents registered with launchd consume property lists for service configuration. Preferences persisted through NSUserDefaults serialize to plists in per-user domains, and installer packages produced with Installer.app include manifests in plist form. Enterprise management solutions using Mobile Device Management frameworks also rely on plists to describe payloads, policies, and provisioning used across fleets of macOS and iOS devices.

Security and privacy considerations

Because property lists can contain sensitive tokens, credentials, or configuration that affects system behavior, secure handling is critical. Files embedded in application bundles are subject to the App Sandbox and code signing enforced by Gatekeeper and Xcode build processes. Secrets encoded in plaintext plists risk exposure through backups managed by iCloud, system snapshots used by Time Machine, or misconfigured source control in GitHub repositories. Malformed or crafted plist data has been leveraged in past vulnerabilities affecting parsers in runtime libraries; therefore, validated parsing, minimized privilege execution, and encryption via Keychain Services are standard mitigations.

Interoperability and parsing libraries

Cross-platform ecosystems provide parsers and serializers for property lists in many languages and runtimes: native implementations in Foundation framework for Objective-C and Swift, third-party libraries for Java, .NET Framework, Go (programming language), Python, Node.js, and Rust. Tools for converting between plist XML, binary plist, and JSON support integration with web services like Azure DevOps and Amazon Web Services pipelines. Compatibility layers and open-source projects facilitate reading legacy formats produced by older releases of NeXTSTEP and migrating plist-based data into modern formats consumed by SwiftUI and server-side components.

Category:Apple file formats