2017-01-05 5 views
0

Auf dieselbe Weise wie ($ (PRODUCT_NAME), $ (EXECUTABLE_NAME), $ (PRODUCT_BUNDLE_IDENTIFIER)) ist es möglich, den ausführbaren Namen der Datei (in der Info.plist) mit der Versionsnummer (z. B. $ VERSION oder so ähnlich)?Wie kann ich den "Archivnamen" (in Edit Scheme/Archive/Archive Name) dynamisch mit dem CFBundleShortVersionString im Suffix bekommen?

Für jetzt habe ich $ (TARGET_NAME), ich möchte die Versionsnummer (CFBundleShortVersionString) hinzufügen. Beispiel: Name_of_the_App_v1.45.ipa

Ändern der „Produktnamen“ wie im folgenden Bild nicht funktioniert: enter image description here

Für Informationen, verwende ich das Skript automatisch den Build und die Version in "erhöhen Erstellen Sie Phasen/Skript ausführen ".

#!/bin/bash 
rm -rf build 

Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
Build=$(($Build + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $Build" "$INFOPLIST_FILE" 

Version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE") 
Version=$(echo "scale=2; $Version + 0.01" | bc) 
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $Version" "$INFOPLIST_FILE" 

Das einzige, was den Namen des IPV-Archivs ändern, ist im Abschnitt „Schema bearbeiten/Archiv/Archivname“, die den Namen des Programms standardmäßig erfolgt. Sie müssen also den Archivnamen ändern oder den Wert des Schemas direkt ändern, wenn Sie diesen Wert im Namen ipa sehen wollen. enter image description here

Wie kann ich ändern sich dynamisch, dass Archivname, die CFBundleShortVersionString in Suffix direkt im Skript ausführen Abschnitt oder sonstwo hinzufügen? Vielen Dank im Voraus.

Antwort

1

Dies ist möglich, indem Sie Ihrem Target eine benutzerdefinierte Build-Einstellung hinzufügen. Klicken Sie auf Projekt -> Zielname -> Build-Einstellungen -> Plus-Button -> Name: APP_VERSION, Wert: 1.0.0. Die neu definierte Build-Einstellung steht dann als Preprozessor-Variable $ (APP_VERSION) in Ihrer Info.plist zur Verfügung.

Der Übersichtlichkeit halber sollten Sie Ihren CFBundleShortVersionString auch auf diese Variable einstellen, damit die beiden Info.plist-Einträge immer die gleiche Versionszeichenfolge enthalten.

+0

Lösung sehr interessant, aber mein Problem ist, dass ich ein Skript verwende, das den Build und die Version automatisch inkrementiert. Ich habe den Code des Skripts in der ursprünglichen Frage klarer gemacht. – Claudio

+0

Ich glaube nicht, dass ich beides benutzen kann? – Claudio

+0

Interessant. Versuchen Sie, APP_VERSION in diesem Skript zu aktualisieren, und prüfen Sie, ob der neue Inhalt in Info.plist angewendet wird. APP_VERSION = "$ Version" –

Verwandte Themen