Property List Editor mit Xcode4 nutzen

From macwrench
Jump to navigation Jump to search

In Xcode 4 ist bekanntermaßen der "Property List Editor" als eigenständige Applikation entfernt und dessen Funktionalität in Xcode integriert worden.

Die war jedoch recht praktisch, weil nicht das "große" Xcode gestartet werden musste, nur im eine plist-Datei zu bearbeiten. Um diese Applikation wieder zurückzubekommen, sind 2 Schritte notwendig, die einen Zugriff auf eine bestehende Xcode 3 Installation voraussetzen:

Programm

  • Aus dem Verzeichnis /Developer/Library/PrivateFrameworks/ von Xcode3 wird das Framework "PlistEdit.framework benötigt, das in Xcode 4 in dieser Form nicht mehr enthalten ist. Dieses ist in das entsprechende Verzeichnis der Xcode 4 Installation zu kopieren
  • Und natürlich das Application Bundle "Property List Editor.app", das standardmäßig im Verzeichnis /Developer/Applications/Utilities/ zu finden ist. In dieses Verzeichnis muss es auch wieder hinein, allerdings scheint es zu genügen nur wenn der relative Pfad vom Application Bundle zu obigem Framework beibehalten wird (../../Library/PrivateFrameworks/).

Anschließend sollte der Property List Editor auch mit Xcode 4 unter OS X 10.6/10.7 klaglos seinen Dienst verrichten ...

plist Strukturdefinitionen

Für die Unterstützung der verschiedenen Dictionary-Strukturtypen (z.B. "iPhone Info.plist" oder "AppleScript Terminology") bzw. deren Schlüsselnamen sind außerdem folgende Xcode-Plugins aus Xcode 3 zu übernehmen, die Unterverzeichnisse sind ggf. manuell zu erstellen:

/Developer/Library/Xcode/Plug-ins/
   InterfaceBuilderPlistStructDefs.xcodeplugin
   PlistPlugin.xcplugin
   PlistStructDefs.xcodeplugin
/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Plug-ins/
   AppleScriptPlistStructDefs.xcodeplugin
   InfoPlistStructDefs.xcodeplugin
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/
   iPhoneEntitlementsPlistStructDefs.xcodeplugin
   iPhoneInfoPlistStructDefs.xcodeplugin
   iPhoneSettingsPlistStructDefs.xcodeplugin

Dadurch werden in bestimmten plist-Typen die Schlüsselwörter durch entsprechende "human readable" Namen ersetzt, beispielsweise "CFBundleDevelopmentRegion" durch "Localization native development region".

  Gefahrenzeichen 16.svg
Nach einem Update von Xcode 4 werden diese Dateien u.U. entfernt, so dass dieser Vorgang anschließend ggf. wiederholt werden muss.
 

Terminal-Programm

Das entsprechende Terminal-Programm Font Awesome 5 solid terminal.svg plutil wird mit Mac OS X ausgeliefert und ist somit auch bei installiertem Xcode 4 weiterhin verfügbar, es befindet sich dort:

/usr/bin/plutil

Die zugehörige Font Awesome 5 solid terminal.svg man-page ist

/usr/share/man/man1/plutil.1

Installationspaket

Ein fertiges Installationspaket kann hier natürlich aus rechtlichen Gründen nicht bereitgestellt werden, mit installiertem Xcode ist das aber mit Hilfe des Package Maker schnell erledigt. Am Besten man erstellt die komplette Verzeichnisstruktur obiger Dateien außerhalb des Xcode Verzeichnisses und verwendet dieses Verzeichnis für das Installationspaket (es muss so hinzugefügt werden, dass anschließend das Installationsverzeichnis /Developer ist, ggf. ist dies explizit anzugeben.

  Verzeichnis-Struktur:
Developer
├── Applications
│   └── Utilities
│       └── Property List Editor.app
├── Library
│   ├── PrivateFrameworks
│   │   └── PlistEdit.framework
│   └── Xcode
│       └── Plug-Ins
│           ├── InterfaceBuilderPlistStructDefs.xcodeplugin
│           ├── PlistPlugin.xcplugin
│           └── PlistStructDefs.xcodeplugin
└── Platforms
    ├── MacOSX.platform
    │   └── Developer
    │       └── Library
    │           └── Xcode
    │               └── Plug-ins
    │                   ├── AppleScriptPlistStructDefs.xcodeplugin
    │                   └── InfoPlistStructDefs.xcodeplugin
    └── iPhoneOS.platform
        └── Developer
            └── Library
                └── Xcode
                    └── Plug-ins
                        ├── iPhoneEntitlementsPlistStructDefs.xcodeplugin
                        ├── iPhoneInfoPlistStructDefs.xcodeplugin
                        └── iPhoneSettingsPlistStructDefs.xcodeplugin