When working with macOS applications, understanding how to handle plist (property list) files is essential for effective application packaging and configuration management. Plist files are key components for software packaging on macOS, storing data in a key-value format to define application behavior, preferences, and configurations across different sessions and users.

What are plist files?
A plist file is a structured data format used by macOS and iOS applications to store settings, preferences, and other configuration data. These files can exist in either XML or binary format and are commonly found in application bundles and user preference directories. As part of the application packaging process, they can help to manage various aspects of software deployment.
Where to find them?
For effective MAC packaging, it’s essential to know where plist files are located:
- User Preferences:
Path: ~/Library/Preferences/
These files contain user-specific settings for applications, which can be adjusted during the software deployment process to cater to individual needs. - All Users Preferences:
Path: /Library/Preferences/
These files store system-wide settings, making them ideal for use in packaged business applications that need consistent configuration across all users.
Working with plist files
Converting plist files between formats
Property list files are often stored in a binary format for efficiency, but this can pose a challenge during application packaging because they are not readable in standard text editors. Use the plutil command to convert these files between binary and XML formats:
To convert a binary plist file to XML format:
plutil -convert xml1 ~/Library/Preferences/com.example.app.plist
To convert an XML plist file back to binary:
plutil -convert binary ~/Library/Preferences/com.example.app.plist
Converting between these formats can be a crucial step in the application packaging workflow, allowing easy editing and ensuring efficient storage.
Viewing and editing
Various tools are available for viewing and editing:
- Xcode: Provides a graphical interface to modify plist files, a valuable feature for application repackaging.
- PlistBuddy: A command-line tool designed for managing plist files, useful for automating tasks in the software deployment lifecycle.
- Text Editor: Convert the binary plist files to XML format to make them editable with any standard text editor.

Example: Using the defaults Command
The defaults command is an essential tool for working with property list files, enabling you to read and write data effectively.
To read a value:
defaults read com.example.app SomeKey
To set a value:
defaults write com.example.app Somekey -string "NewValue"
For example, to disable updates for Firefox, use:
sudo defaults write /Library/Preferences/org.mozilla.firefox DisableAppUpdate -bool TRUE
Best Practices
- Backup: Always create a backup of Property list files before making any changes. It is ensuring data integrity during the application packaging process.
- Permissions: Ensure you have the necessary permissions to edit files in /Library/Preferences/, especially when working with system-wide configurations.
By mastering the handling of plist files, you can optimize macOS application packaging, making software deployment and updates more efficient.
Apptimized experts have long time experience in creating packages for macOS. If you need help, check out our MAC packaging service or schedule a demo.