Comment lire fichier plist de l'information (id) à partir d'un script shell
Je voudrais écrire un script qui peut lire des infos comme Identifiant de lot ou peut-être le numéro de version de l'Info.plist de l'application. Xcode ne semble pas donner cette information dans les variables d'environnement. Est-il un autre moyen de les obtenir en sh/bash?
Vous devez vous connecter pour publier un commentaire.
La
defaults
commande peut lire/écrire sur n'importe quel fichier plist, juste lui donner un chemin moins le.plist
extension:Ce tire le
CFBundleIdentifier
valeur directement à partir de l'application du bundleInfo.plist
fichier.Par défaut fonctionne également avec les binaires plists sans étapes supplémentaires.
BUNDLEID=$(defaults read $(dirname $PWD)/Info CFBundleIdentifier)
. C'est parce que l'Info.plist est dans le dossier parent au-dessus le dossier de Ressources.man defaults
dit: AVERTISSEMENT: Les valeurs par défaut de la commande sera changé dans une prochaine version majeure de fonctionner uniquement sur les préférences des domaines. Général plist utilitaires de manipulation sera plié dans un autre programme de ligne de commande.À l'aide de PlistBuddy, une application par Apple il est possible d'affecter la chaîne de la var comme ceci:
Où BUILD_ROOT et INFOPLIST_PATH sont des variables définies par Xcode si vous exécutez ce script dans un "Run Script" phase de construction.
Vous pouvez simplement lire le fichier directement à partir du produit. Cependant, si vous regardez les infos.fichier plist lui-même dans l'éditeur, vous verrez les variables shell eux-mêmes. E. g. l'ID est a la commande shell suivante:
Vous pouvez appeler
${PRODUCT_NAME:rfc1034identifier}
en aucun script shell qui Xcode s'exécute et il devrait se remplir.Il y a un programme en ligne de commande installé sur le Mac appelé PlistBuddy capable de lire/écrire des valeurs dans un fichier plist. Type 'homme PlistBuddy' dans le Terminal pour obtenir plus d'infos.
Cette commande a fonctionné pour moi: