What's the best application to open and edit a plist file ?
A PList file, like Mankoff said, is just a specially formatted XML file, so you can actually edit and create them in a program like TextEdit.
Because of the specific nature of PLists to Development, however, using a special program like
Property List Editor becomes a much more fruitful endeavor. This is because it not only automatically formats the XML code for you, but it will actually translate the key identifiers and layers into readable words, and also for some values it will provide a drop-down menu to fill in the correct responses. Especially when dealing with iPhone plists, when multiple runtime variables can be set using the Plist, easily creating new fields and knowing what to put in them makes it so much easier.
You can get bot Xcode and PList Editor from the Apple Developer website http://developer.apple.com for free by downloading the latest Xcode release.
If the plist file is in the XML format, you can edit it in any text editor like TextEdit. If the plist file is in the binary format, you can convert it to XML first by running:
plutil -convert xml1 file.plist
If you want to go back to binary format after editing:
plutil -convert binary1 file.plist
If you have Xcode 4.3 or later, you can use it to edit property lists in a graphical editor like this:
Xcode 4.2 and earlier came with a separate application for editing property lists (
/Developer/Applications/Utilities/Property List Editor.app/).
A fine program like TextWrangler can edit binary
.plist files without first converting them using Terminal. Simply open the file like you would any other (i.e. drag-and-drop on the program icon, or the File open dialog, or Open With in the Finder or...)
Since Apple got rid of the GUI Property List Editor, Xcode is the best free option if you want to be sure of the result.
There are some gotcha's using a generic code editor to edit plist files. Since dictionaries use entries like
<key>some key</key> <string>some value</string> <key>another key with boolean value</key> <true />
You can create a valid XML file that is not a valid plist file, for example:
<key>some key</key> <!-- oops, forgot to enter a value - still valid XML --> <!-- valid XML, not a plist --> <key>another key with boolean value</key> <true>yes</true>
If you're willing to go commercial, Plistinator will edit both binary and XML plist files.
Full-disclosure: I'm the author of Plistinator and the $12.99 it costs pays for my ramen and rent.
I have used PlistEdit Pro for macOS and found it to be useful and comprehensively feature rich.