L'édition d'un fichier plist à l'aide d'un script shell
J'ai utilisé pkgbuild pour créer un Composant par défaut de la Propriété de la Liste de fichier. Le fichier ressemble à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>BundleHasStrictIdentifier</key>
<true/>
<key>BundleIsRelocatable</key>
<true/>
<key>BundleIsVersionChecked</key>
<true/>
<key>BundleOverwriteAction</key>
<string>upgrade</string>
<key>RootRelativeBundlePath</key>
<string>MyApp.app</string>
</dict>
</array>
</plist>
Je veux modifier ce fichier à l'aide d'un script shell. J'ai essayé d'utiliser defaults write mais il n'a rien fait.
Quelle est la façon de le faire?(Par exemple: je veux mettre BundleIsRelocatable false)
OriginalL'auteur user2653062 | 2014-10-05
Vous devez vous connecter pour publier un commentaire.
Aussi:
OriginalL'auteur
À l'aide de PlistBuddy, un simple tutoriel ICI.
Il peut fonctionner comme UNE ligne de commande pour mettre à jour la clé/valeur.
Je l'utilise pour mettre à jour
CFBundleVersion
en général, qui peut être trouvé dans ce post.OriginalL'auteur
Utilisation PlistBuddy!
Très simple et direct.
Exemple:
C'est tout! Maintenant BundleIsRelocatable est faux 😀
OriginalL'auteur
Chaîne pour utiliser
OriginalL'auteur
Un peu tard, mais pour l'enregistrement, il vous suffit de spécifier le chemin d'accès absolu ET ajouter le .plist extension du nom de fichier. Si vous exécutez votre script dans le même répertoire que le fichier plist, votre cas serait traduit en:
OriginalL'auteur
À l'aide de
sed
:Si le plist n'est pas XML, exécutez
plutil -convert xml1 file.plist
premier.OriginalL'auteur
La dernière réponse de Phil-CB ici devrait être utile.
OriginalL'auteur