PLIST Editor

Developer: Vlad Badea

Current Version: 1.25

Last Updated: 2 months ago

Download Size: 4.5 MB - Download


PLIST Editor is an easy to use editor for property list (.plist) data. In a clean and uncluttered interface, it allows you to quickly create, visualize, modify, and save your .plist documents.

PLIST Editor is probably the only "source control" friendly property list editor that you can find on the market (except Xcode, of course). For XML plists (the most commonly used) and OpenStep/ASCII plists, it maintains the order of dictionary elements and the editing capabilities are on parity with Xcode, so you don't see a difference between a file edited in PLIST Editor and one edited in Xcode.

PLIST Editor can be used as a lightweight alternative to Xcode, having more features, using less disk space, less memory and starting up much faster.

Core features:
• Open and save property list files in XML, Binary and OpenStep/ASCII format.
• Import plist data contained in .mobileconfig or .mobileprovision files or other files which are encoded using Cryptographic Message Syntax (CMS). For the files encoded using CMS there is support to see information about the signers (email address and certificate) and the additional certificates which might be included in the message.
• Multiple selection - works on sibling elements
• Cut, copy, paste, duplicate, delete and reorder the elements. You can do all these operations even when multiple elements are selected.
• "Source control" friendly - for XML and OpenStep/ASCII property lists the order of dictionary elements is preserved, showing them in the same order as they are defined in the file. Similarly, when the property list is written to disk, the order of items from a dictionary written to disk is the same as the one seen on screen. This is especially useful when you keep the files in a repository, because only the relevant changes will be shown when diff-ing the edited files.
• Find & Replace text in the property list elements. You can choose where the Find (and Replace) will take place: in "Key" column or "Value" column or both. The option which controls which columns will be searched is available by clicking the "search" image in the find bar (Command + F) and then accessing the options from "Find In" submenu.
• Find & Replace also lets you configure where in the text to look for matches: "Contains", "Equals To", "Starts With", "Ends With" and "Regular Expression"
• Sort the selected items, via "Editor -> Sort...". Selecting a single item, which is an array or dictionary, allows you to sort the children of that item
• Undo and redo
• Edit the elements of a property list. This works both for a single item (be it key or value) or for multiple items (via "Edit -> Edit Value...")
• Open and edit the files created using NSKeyedArchiver without any loss of information
• Support for pasting plist data, either from raw XML or from Xcode
• Copy elements as Swift objects so you can use them in Xcode
• Copy elements as Objective-C objects, both modern and classic syntax, so you can use them in Xcode
• Copy elements as JSON data, both indented and compact JSON
• Copy elements as XML, Binary (Base 64 encoded) and OpenStep/ASCII plists
• Embed selected elements in array or dictionary
• Shift elements to left or right
• Row height which accommodates multi-line text
• "Add" and "Remove" buttons on the outline element which is tracked by mouse
• Option in Preferences to choose the default font, along with the font size
• Option in Preferences to "Alternate Row Colors" in the outline
• Ability to increase and decrease font size for better readability, per each document individually
• Versions support
• Option, in Preferences, to disable the Auto Save (and Versions)
• Detect when the document is changed by another application.
• Double click one of column separators to resize the corresponding column so the largest text in that column will be visible
• Toolbar to access common operations
• Dark Mode support on macOS Mojave 10.14 and above


Release Notes:

• The "Find" button from the toolbar now toggles the visibility of the Find bar.
• By default the application now uses the global "Find" clipboard for sharing the text to search for. This means the text you enter in one application (or in another PLIST Editor document) will automatically appear in another. You can disable this functionality by clicking the "search" (loupe) image in the Find bar (Command + F) and then uncheck "Use Shared Find Clipboard".
• The entries from PLIST tree editor can now be deleted using "delete forward" (fn + Delete). This is in addition to "delete", which was already supported.
• Similar to Xcode, the Boolean values are now displayed using a combox box containing YES/NO. If you want to switch to the old way of having a checkbox, you can do this from "Preferences -> Use a checkbox for Boolean values"

Bug fixing
• The expanded items no longer (annoyingly) collapse when you change their type.

Introduced in Version 1.24

• Adds support to create and edit OpenStep/ASCII PLISTs.
• For OpenStep/ASCII PLISTs, the app now preserves the order of the items from a dictionary, showing them in the same order as they are defined in the file.
• Adds three more options to "Edit" -> "Copy As" menu. These are "XML PLIST", "Binary PLIST (Base64 Encoded)" and "OpenStep/ASCII PLIST".

Introduced in Version 1.23

• Adds a menu entry and a toolbar item which allows the changing of PLIST format.
• The keys for the items enclosed in an array are now displayed using a lighter gray color, to underline that they are not editable.

Introduced in Version 1.22

• When an item contained in a dictionary is embedded in an array or dictionary, then the item which is created as a result will retain the key of the item which was embedded. Note that this works only when embedding a single item, for multiple items the name of the key will continue to start with "New item -".

Bug fixing
• The expanded items no longer (annoyingly) collase when you move them, or edit their keys or embed them in array or dictionary.

Introduced in Version 1.21

Bug fixing
• Fixes an issue where the default window size wasn't set properly when using "Preferences" -> "Get from Sample Window..."

Introduced in Version 1.20

• The window size, column settings and font size are preserved and restored between reopenings of a file. This information is preserved in file's extended attribute and it works only for the files that you have write access.

Introduced in Version 1.19

• Adds support for regular expression in the Replace field. This works as long as you perform a search for regular expression. The technique used to do the regular expression replace is "template matching", where you can use $0, $1, $2 and so on, to specify which text of the capture group will be substitued. $0 will be replaced by the contents of the matched range, $1 by the contents of the first capture group, and so on. Additionally, backslash character '\' can be used to suppres any special meaning for the next character. Backslash escaping in replace text is only required for '$' and '\', but may be used on any other character without bad effects. For additional information, see NSRegularExpression.

Bug fixing
• Fixes an issue, introduced in the last update, where the edit of "Data" values didn't work.
• Fixes a crash/freeze which happened when saving a document where you previously edited a key or value and then collapsed the parent item before ending the edit.

Introduced in Version 1.18

• Completely removed the sending of crash reports and analytics from the app. Note that until now the sending happened only if you explicitly allowed it to happen.

Bug fixing
• The single and double-quote characters are now properly XML escaped when writing a XML plist to disk.


Most Helpful Reviews

Version 1.15
Review by Ovidiu Carstea

The right tool - Best tool for working with PList and Source Code. Saved me a lot of time. Thank you Vlad

Found helpful by 1 out of 1 people
Version 1.3
Review by norsemelon

Do not use if you are using version control - When I open a plist in this app, the items in my plist are re-ordered (originally they were in alphabetic order). Also, inexplicably, all the real number values are changed to be infinite decimals (i.e. 0.6 to 0.599999999). All of these changes show up in version control, so if you were expecting to commit any changes to your repo, forget about it.

Found helpful by 4 out of 5 people