web-dev-qa-db-fra.com

Numéro de build Xcode-Increment uniquement pendant ARCHIVE?

J'ai trouvé quelques autres articles qui montrent comment ajouter un script pour incrémenter le numéro de build avec un script:

Meilleure façon d'incrémenter le numéro de build?

"Numéro de build" du projet Xcode

Xcode peut-il insérer le numéro de version dans le nom de fichier d'une bibliothèque lors de la construction?

Mais ce que je veux faire, c'est augmenter le nombre de build uniquement lorsque j'utilise ARCHIVE (avant et après).

Exemple: si le numéro de build actuel est 21, alors lorsque je choisis Produit> Archive, le numéro de build passe à 22, il passe par son processus de construction et de création du fichier archive avec le numéro de build de 22, puis lorsqu'il est l'archivage terminé, le nombre de builds passera à 23.

55
jsherk

Ajoutez le script suivant, comme dans l'exemple répertorié dans le premier lien que vous avez publié, MAIS faites-le deux fois. Une fois au début de la construction et une fois à la fin:

if [ $CONFIGURATION == Release ]; then
    echo "Bumping build number..."
    plist=${PROJECT_DIR}/${INFOPLIST_FILE}

# increment the build number (ie 115 to 116)
    buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
    if [[ "${buildnum}" == "" ]]; then
        echo "No build number in $plist"
        exit 2
    fi

    buildnum=$(expr $buildnum + 1)
    /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
    echo "Bumped build number to $buildnum"

else
    echo $CONFIGURATION " build - Not bumping build number."
fi

Un grand merci aux auteurs des questions auxquelles vous avez lié dans votre question pour les informations qui m'ont permis de commencer cette réponse!

79
lnafziger

Ceci est très similaire à la réponse de @ Inafziger, mais un ensemble de code plus concis, avec l'avantage supplémentaire que la vérification de "Release" se fait avec une case à cocher dans XCode plutôt qu'une variable d'exécution:

enter image description here

Suivez ces instructions deux fois, en faisant glisser un au début et un à la fin (un à exécuter avant la génération et un autre à exécuter après la génération):

# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run. 
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Ensure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
# 7. Check the checkbox "Run script only when installing"

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

Voir https://Gist.github.com/sekati/3172554

21
ccwasden

Xcode inclut l'outil de ligne de commande agvtool pour augmenter les numéros de version . Vous n'avez donc pas à tout faire manuellement avec PListBuddy.

xcrun agvtool next-version -all

augmente votre numéro de build.

xcrun agvtool new-marketing-version 2.0

définit un nouveau numéro de version visible par l'utilisateur.

Voir documentation complète pour plus de détails .

7
orkoden