Ändern von Info.plist-Werten über das Terminal

Ich erstelle meine eigene Anwendung und möchte einige Werte in meiner Info.plist-Datei mit dem Terminal ändern.

Ich habe es versucht defaults write Info.plist CFBundleExecutable -string <Executable>und defaults write Info.plist CFBundleExecutable <Executable>es scheint jedoch nie zu funktionieren. Ich bekomme keine Ausgabe, also weiß ich nicht einmal, was ich falsch mache.

danke für die Hilfe

Können Sie den absoluten Pfad zu Ihrer Info.plist-Datei ausprobieren? Es funktioniert für mich (PS nach dieser Plist ist im Binärformat)
Das hat funktioniert! Wenn Sie es als Antwort hinzufügen, werde ich positiv abstimmen und es akzeptieren, damit Sie dafür einen guten Ruf erhalten.

Antworten (2)

Sie können defaultsoder plutilKommandozeilen-Tools verwenden.

Denn defaultsso sieht es aus:

defaults write /absolute/path/to/Info.plist CFBundleExecutable -string <Executable>

Für plutil:

plutil -insert CFBundleExecutable -string <Executable> Info.plist 

Wert danach -insertist ein Schlüsselpfad, getrennt durch .. Zum Beispiel

plutil -insert CFBundleDocumentTypes.0.CFBundleTypeExtensions.1 -string "scss" /Applications/Safari.app/Contents/Info.plist

fügt den "scss"-String tief in den Pfad ein. Zahlen danach .sind für Arrays (sie beginnen mit 0).

Danke, aber wie können Sie in eine tiefere Ebene der Plist einfügen (z. B. ein Element zu einem internen Wörterbuch hinzufügen)? Hier präsentieren Sie lediglich den Schlüssel, den Typ und den Wert - aber keinen Schlüsselpfad.
@MottiShneor Ich habe ein Beispiel für einen tieferen Schlüsselpfad hinzugefügt.
@MateuszSzlosek ist es möglich, den gesamten Text mit defaults write zu schreiben? bedeutet Volltext in eine Datei, um den Inhalt durch diesen neuen textbasierten Inhalt zu ersetzen?
@momomo Ich bin mir nicht sicher, ob ich ganz verstehe, was du damit meinst. Bitte stellen Sie eine neue Frage mit mehr Details.
@MateuszSzlosek Es ist ok, ich habe es gelöst. Sie können eine textbasierte XML-Datei in eine binäre Plist-Datei konvertieren. Damit kann ich die XML-Datei nach Belieben von Bash bearbeiten und dann alles speichern / schreiben, anstatt nur kleine Teile davon zu schreiben.

GET-Wert - Rohschlüssel bereitstellen

/usr/libexec/PlistBuddy -c "Print CFBundleExecutable" Info.plist

SET Value - liefert Rohschlüssel und Wert

/usr/libexec/PlistBuddy -c "Set CFBundleExecutable <Executable>" Info.plist