web-dev-qa-db-fra.com

Comment lire la version actuelle de l'application dans Xcode 11 avec un script

Jusqu'à Xcode 11 , j'ai utilisé un script qui lit la version actuelle de l'application (pour l'AppStore) et m'aide à changer le LaunchScreen car nous ne pouvons pas utiliser = Swift pour cela.

sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")

sed -i .bak -e "/userLabel=\"APP_VERSION_LABEL\"/s/text=\"[^\"]*\"/text=\"v$versionNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"

Mais dans Xcode 11 il y a une nouvelle section à l'intérieur des paramètres de construction du projet appelée Versioning

enter image description here

Et CFBundleShortVersionString est automatiquement remplacé par $(MARKETING_VERSION). Xcode gère automatiquement cela et Je ne veux pas le changer manuellement en un nombre statique et laisser Xcode faire son travail.

11

La question est donc de savoir comment puis-je accéder à ce nouveau MARKETING_VERSION Et le définir sur mon étiquette launchScreen en utilisant le script d'exécution ?

30
Mojtaba Hosseini

Que diriez-vous d'enregistrer une valeur dans CURRENT_PROJECT_VERSION? est-ce que quelqu'un a réussi à faire ça?

Je peux obtenir la valeur comme

buildNumber=$CURRENT_PROJECT_VERSION

mais cela ne fonctionne pas:

CURRENT_PROJECT_VERSION=""    or   $CURRENT_PROJECT_VERSION=""

Dans mon cas, j'essaye de le régler sur ""

Cette ligne ne définit pas non plus le champ CURRENT_PROJECT_VERSION

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$appInfoPlist"
0
rickrvo