This reference will help you get started editing plist files with the Penguin Mac app. It also covers some of Penguin’s advanced features and functionality. If you’re having trouble with Penguin and can’t find a solution to your problem below, you can always contact us for further help.
Once you've downloaded Penguin from the Mac App Store, you may use the app to open, modify and save Property List files on your computer. Property List files typically end with the .plist extension, but can sometimes have non-standard extension names or no extension. Penguin can automatically detect and load properly formatted plist files regardless of their file extension.
Penguin supports the two most common plist encodings: XML and Binary. XML is the default encoding, and is the most common encoding used in plist files. Penguin allows you to freely convert files between XML and Binary formats.
Using Penguin with Xcode
You can use Penguin to edit plist files in Xcode by right clicking on a plist file in the Xcode side bar and selecting Open with External Editor.
Penguin will do its best to format file output in a way that's consistent with Xcode's built in plist editor. This helps keep plist files consistent in source control. You may also modify how Penguin formats files, such as using spaces instead of tabs by selecting Penguin > Preferences from the menu bar.
The Document Tree: The Document Tree is a visual, editable representation of a plist file. From the Document Tree you may add, remove, edit and reorder keys and values.
New Property Modal: The New Property Modal appears when you add a new property to the Document Tree. The New Property Modal allows you to specify the type of property you want to add, and also allows you to search from a list of predefined properties. Penguin includes common keys from Info.plist by default.
Navigator: The Navigator displays the path of the currently selected property and allows you to quickly traverse different levels of the plist file.
Minimap: The Minimap displays a condensed visual overview of the plist file. Click and drag the Minimap to quickly scroll through the document.
Press the magnifying glass button in the toolbar or Command+F to bring up Search. The search box allows you to search for a specific key or value in the document. You can also replace text and specify whether you want a case-sensitive search.
Penguin renders plist files an intutive tree-like view. Add new properties by clicking the Add Property button. Drag and drop cells to reorder properties. You may right click any cell to open a context menu providing convenient shortcuts for copying or deleting the key/value pair.
Penguin supports all standard plist types and in many cases offers a more user-friendly means of data entry when compared to hand editing an XML file:
StringString: A text value. Editable via the provided text field.
BoolBoolean: A boolean value. Penguin represents booleans as a toggle.
NumberNumber: A numerical value. Penguin supports integer and floating point values and will automatically choose the correct type.
DateDate: A date value. Select a date from the calendar dropdown and it will automatically be converted to ISO 8601.
DataData: Editing data properties will open a hex editor. Enter valid hexidecimal data and it will be converted to binary upon saving.
DictDictionary: A collection of properties containing named values. Collapsible by pressing the > button.
ArrayArray: A collection of properties containing enumerated values. Collapsible by pressing the > button.
To change a type, simply click on the type label and select the new type from the dropdown. Most type changes are destructive operations that will overwrite the current value or child elements. You can use Command-Z to undo any type changes and restore existing values.
Paragraphs is capable of opening and saving XML and Binary plist files and can export documents to JSON, Swift or Objective-C dictionaries.
The Share Menu
You can share or export an entire plist file via the Share Menu. In addition to normal text based sharing options, the Share Menu allows you to export a copy of the document as JSON, Swift, Obj-C dictionaries or as a binary or XML copy.
The Context Menu
You may export a fragment of the document as well by right clicking on any property in the editing interface and selecting Copy As from the contextual menu.