web-dev-qa-db-fra.com

L'archive Xcode 11 donne l'échec de PhaseScriptExecution

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-DEV/IntermilesBus -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/MyApp-iOS-DEV/IntermediateBuildFilesPathMos .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 export CURRENT_PROJECT_VERSION = 114

Je n'ai pas de script avec "$ (CURRENT_PROJECT_VERSION) + 1" donc je ne sais pas quoi faire

5
Navtti

Voici le script qui a fonctionné pour moi sur Xcode 11+
Ajoutez simplement un nouveau Run Script Phase à ton Build Phases
Ajoutez-le sous le Link Binary with Libraries phase.

#!/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

0
S1LENT WARRIOR

Toutes les réponses ci-dessus ne faisaient pas l'affaire par elles-mêmes, j'ai dû en calculer un tas, y compris la Apple (voir les références ci-dessous). Voici donc les étapes que j'ai faites si cela aide quelqu'un à avoir toutes les étapes.

Dans Info.plist, définissez:

  • CFBundleShortVersionString à $ (MARKETING_VERSION)
  • CFBundleVersion à $ (CURRENT_PROJECT_VERSION)

Dans les paramètres de build cible:

  • définir le système de gestion des versions sur "Apple Generic"
  • définissez la version actuelle du projet sur 1 (ou la version de votre choix)
  • définissez la version marketing sur 1.0.0 (ou la version que vous souhaitez)

Dans le schéma> Archive:

  • ajouter une post-action "Exécuter une action de script":
    • Fournissez les paramètres de construction à partir de: votre application
    • dans le script: cd ${PROJECT_DIR} ; xcrun agvtool next-version -all ;

  1. Doc Apple mentionné par cuimingda : https://developer.Apple.com/library/archive/qa/qa1827/_index.html
  2. Certaines des étapes mentionnées par moucheg
0
Toka