Wie kann ich com.apple.tools.info-plist-Dienstprogramm ausführen?
Frage
Ich bin mit XCode einer iPhone-Anwendung zu bauen, wo Ich mag von außen würde die Info plist-Datei in der gleichen Weise wie der XCode Build-Schritt verarbeiten unten hat gezeigt
Processing /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist TestAppGen-Info.plist
mkdir /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app
cd /Users/kte/Projects/TestAppGen
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
<com.apple.tools.info-plist-utility> TestAppGen-Info.plist -genpkginfo /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/PkgInfo -expandbuildsettings -format xml -o /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist
Dieser Auszug aus dem Build-Protokoll bezieht sich auf ein com.apple.tools.info-plist-Dienstprogramm, das ich aus verschiedenen Quellen, um das Netz zu sammeln, ist ein internes XCode-Dienstprogramm.
Ist es möglich, das com.apple.tools.info-plist-Dienstprogramm von einer Befehlszeile ausgeführt werden?
Lösung
Sie können ein Tool namens PlistBuddy, /usr/libexec/PlistBuddy
, haben einen Blick auf seine man-Seite.
Aber Sie werden auch die plist konvertieren müssen zurück in eine binäre plist-Datei. Dies kann, wie dies in einem Build-Skript ausgeführt werden
plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"
Andere Tipps
Die "plutil" Antwort ist ein guter Start. Leider ist die Xcode Build-Prozess kann mehr auf die Info.plist Datei als binäre Umwandlung, zum Beispiel auf meinem System fügt es in den Bereichen:
-MinimumOSVersion
-PlatformName
-CFBundleExecutable
-SDKName
-CFBundleResourceSpecification
-CFBundleSupportedPlatforms
Nach dem Apple-Dokumentation nicht sollen einige dieser Werte einzurichten selbst:
MinimumOSVersion
MinimumOSVersion (String). Wenn du bauen eine iPhone-Anwendung, Xcode bestimmt nimmt die Ziel-OS (von die Base-SDK Auswahl) als MinimimOSVersion Eigenschaft. Unterlassen Sie Geben Sie diese Eigenschaft, sich in der Info.plist-Datei; es ist ein system geschrieben Eigenschaft. Wenn du veröffentlichen Sie Ihre Anwendung in den App Store, gibt der Speicher des iPhone Betriebssystem-Version auf dem Ihre Anwendung kann basierend auf dieser Eigenschaft laufen. Es ist äquivalent dem LSMinimumSystemVersion Eigenschaft auf Mac OS X.
Ich laufe in allen möglichen Problemen versucht, meine Anwendung als Teil meiner benutzerdefinierten Build-Prozess erneut zu unterschreiben.