Après avoir migré mon projet de swift 3.2 vers swift 4 dans Xcode 10, j'essaie d'archiver dans Xcode 11 et me donne cette erreur:
PhaseScriptExecution Run \ Script /Users/desarrollo/Library/Developer/Xcode/DerivedData/MyApp-iOS-ewcyzseaubkujucenluznpmduhoo/Build/Intermediates.noindex/ArchiveIntermediates/MyApp-iOS-DEVildmediates/MyApp-iOS-DEVBuildMediates/RelipathiOS-DEVBuildMediates/MyApp-iOS-DEVBuildMedia -iOS-DEV.build/Script-E95AEDE51E54767F00B60429.sh (dans la cible 'MyApp-iOS-DEV' du projet 'MyApp-iOS')
. . .
/Users/desarrollo/Library/Developer/Xcode/DerivedData/MyApp-iOS-ewcyzseaubkujucenluznpmduhoo/Build/Intermediates.noindex/ArchiveIntermediates/DerivedData/MyApp-iOS-ewcyzseaubkujucenluznpmduhoo/Build/Intermediates.noindex/ArchiveIntermediates/MyApp-iOS-DEOS-DEV/IntermediateBuildFrançais .build / Script-E95AEDE51E54767F00B60429.sh: ligne 5: $ (CURRENT_PROJECT_VERSION) + 1: erreur de syntaxe: opérande attendu (le jeton d'erreur est "$ (CURRENT_PROJECT_VERSION) + 1")
Dans la pile d'erreurs, je trouve l' exportation CURRENT_PROJECT_VERSION = 114
Je n'ai aucun script avec "$ (CURRENT_PROJECT_VERSION) + 1", donc je ne sais pas quoi faire
4 Réponses :
MISE À JOUR 2:
Cela provoque l'annulation des builds! Jetez un œil à la réponse de S1LENT WARRIOR ci-dessous, cela semble fonctionner mieux.
MISE À JOUR 1:
Dans la dernière version de Xcode (version 11.1), vous pouvez faire l'incrémentation automatique du numéro de build assez facilement.
Voici les étapes:
Build Settings
votre cibleVersioning System
des Versioning System
Apple Generic
Build Phases
votre cibleagvtool next-version -all
Faites cela pour toutes vos cibles et leurs numéros de build seront tous synchronisés et mis à jour chaque fois que vous exécutez l'une des cibles.
Vous avez cette réponse d'ici: https://stackoverflow.com/a/58237340/1432355
PS: comme dit dans un commentaire ci-dessous
L'utilisation de avgtool dans une phase d'exécution de script entraîne l'annulation de la construction
ORIGINAL:
Tu n'as rien fait de mal je pense.
Si vous accédez à votre info.plist
vous verrez que le numéro de build a été remplacé par $(CURRENT_PROJECT_VERSION)
(vous pouvez trouver la variable dans l'onglet Paramètres de build).
Je suppose que vous utilisez un script qui incrémente automatiquement le numéro de build et qui cause le problème (j'ai la même chose sur mon projet en ce moment).
Si vous supprimez ce script, votre application devrait se créer sans cette erreur.
Je n'ai pas encore trouvé de solution pour faire fonctionner le script avec cette nouvelle $(CURRENT_PROJECT_VERSION)
. (Je mettrai à jour cette réponse lorsque j'aurai trouvé la solution)
L'utilisation de avgtool
dans une phase d' avgtool
du script entraîne l'annulation de la construction. Avez-vous une solution de contournement à cela?
@ Rafał Oui, j'ai remarqué ça aussi ... Je reviendrai sur cette semaine prochaine et mettrai à jour cette réponse (encore une fois ..) une fois que j'aurai trouvé une solution qui fonctionne vraiment
@OliverD Si vous allez dans l'onglet Build Phases
votre cible et cliquez sur le `` plus '' en haut, vous devriez avoir un popover avec un bouton indiquant New Run Script Phase
@Moucheg Une solution pour que la build soit annulée lors de l'archivage?
@Anuraj nop n'a rien trouvé qui fonctionne malheureusement ...
Cette solution fonctionne sur Xcode Version 12.2 (12B45b), Thx
Changez simplement CFBundleVersion de $(CURRENT_PROJECT_VERSION)
en nombre, dans mon cas est 1000
dans Info.plist
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}"
Ensuite, le shell sera OKey:
<key>CFBundleVersion</key> <string>1004</string>
et si vous souhaitez modifier current_project_version, vous pouvez trouver la réponse sur la documentation Apple developer.apple.com/library/archive/qa/qa1827/_index.html
Toutes les réponses ci-dessus ne faisaient pas l'affaire par elles-mêmes, j'ai dû en calculer un certain nombre, y compris la documentation Apple (voir les références ci-dessous). Voici donc les étapes que j'ai suivies si cela aide quelqu'un à avoir toutes les étapes.
Dans Info.plist, définissez:
Dans les paramètres de construction cible:
Dans le schéma> Archive:
cd ${PROJECT_DIR} ; xcrun agvtool next-version -all ;
J'ai suivi exactement les mêmes étapes. Mais l'Archive continue de s'annuler. J'utilise Xcode 11. Une solution pour éviter l'annulation de l'archive?
Voici le script qui a fonctionné pour moi sur Xcode 11+
Ajoutez simplement une nouvelle Run Script Phase
d' Run Script Phase
à vos Build Phases
Ajoutez-le sous la phase Link Binary with Libraries
.
#!/bin/sh # To make executable, use: chmod u+x Build-Versioning-Scripts/Increment_Build_Number.sh # to locate your target's info.plist use # ${PRODUCT_SETTINGS_PATH} echo "----" echo "Info.plist for target: ${PRODUCT_SETTINGS_PATH}" buildNum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "${PRODUCT_SETTINGS_PATH}") echo "Current build #: $buildNum" if [ -z "$buildNum" ]; then echo "No build number found in $PRODUCT_SETTINGS_PATH" exit 2 fi buildNum=$(expr $buildNum + 1) echo "Build # incremented to: $buildNum" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNum" "$PRODUCT_SETTINGS_PATH" echo "----" exit 0
Ce script a été initialement publié ici par Alex Zavatone .
J'espère que cela t'aides
Cela fonctionne parfaitement! Toutes les solutions liées aux outils avg entraînent l'annulation de l'archive. Cela a fonctionné pour moi dans Xcode 11.
Il doit y avoir un bogue dans l'un de vos scripts.