2011-10-21 5 views
2

J'ai un cadre de projet défini par l'utilisateur (clé/valeur) comme ceci:Xcode build numéro de version dans le script shell

LATEST_BUILD_NUMBER  2.2.2.2 

Dans mon Info.plist, j'ai mis la version bundle clé (CFBundleVersion)/valeur paire comme ce

Bundle version  ${LATEST_BUILD_NUMBER} 

Je crée un script shell pour faire le construit pour mon tous mes objectifs. Je veux aller chercher la valeur "2.2.2.2" dans mon script. Voilà ce que j'ai essayé:

INFO_PLIST_FULL_PATH="${PROJDIR}/${TARGET_NAME}-Info.plist" 
echo plist path ${INFO_PLIST_FULL_PATH} 

TARGET_BUILD_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print ${BUILD_NUMBER}" $INFO_PLIST_FULL_PATH) 
echo version_number ${TARGET_BUILD_VERSION_NUMBER} 

Quand je fais cela, la sortie pour le chemin de plist est correct, mais la sortie TARGET_BUILD_VERSION_NUMBER est « $ {LATEST_BUILD_NUMBER} » au lieu de « 2.2.2.2 »

Comment puis-je obtenir la valeur au lieu du nom de la variable?

Répondre

0

Xcode ne remplace pas la valeur avant qu'elle ne soit copiée sur le fichier dans le produit assemblé. Alors, allez à la source: Récupérez la valeur du fichier * .xcodeproj/project.pbxproj. Vous devriez être capable de trouver la valeur actuelle avec une recherche rapide. Ensuite, il vous suffit de concevoir une regex pour le retirer.

+0

En fait, dans le script, je fais d'abord la commande xcodebuild, puis j'essaie de rechercher cette information. J'ai besoin de cette information pour créer un répertoire dans chaque numéro de construction pour enregistrer les fichiers .ipa. le processus est xcodebuild-> find version-> create directory-> packageApplication dans ce répertoire. Les fichiers ne devraient-ils pas être copiés d'ici là? – Bittu

+0

Le fichier se trouvera dans le répertoire * .app/Contents /. La façon la plus simple de travailler avec ceci serait d'ajouter une phase de construction du script d'exécution, car vous aurez alors accès à un tas de variables de construction Xcode comme ['$ TARGET_BUILD_DIR'] (http://developer.apple.com/library/ mac/# documentation/DeveloperTools/Référence/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html # // apple_ref/doc/uid/TP40003931-CH3-SW88). –

Questions connexes