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
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.
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 ?
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"