In Apples Dokument hätte klarer dargelegt werden können, wie eine Update-Version eingereicht werden kann.
Wie im Titel gefragt, was ist der Unterschied zwischen
- Versionsnummer in iTunes Connect (die Sie angeben müssen, wenn Sie ein Update einreichen)
- Bundle-Version in xcode
- Bundle-Versionen String, kurz
Sind sie in irgendeiner Weise verwandt?
Antworten:
Ja, sie sind verwandt. Sie beziehen sich alle auf die Version Ihrer Anwendung.
iTunes Connect
Dies ist die im App Store angezeigte Versionsnummer. Dies muss eine reine Versionsnummer sein
1.2.3
Bundle-Version (CFBundleVersion)
Dies muss keine reine Versionsnummer sein. Dies kann so etwas wie
12345
oder sein1.2.3 (Build 12345AB)
. Dies wird beispielsweise im Fenster "Info" für Mac OS X-Apps angezeigt und ist häufig eher eine "Build-Nummer" als eine "Versionsnummer".Bundle-Versionszeichenfolge (CFBundleShortVersionString) Dieser Wert wird als "echte" Versionsnummer verwendet. Dies muss dieselbe Zeichenfolge sein, die für die Version in iTunes Connect verwendet wurde .
Update:
Wie von @snlehton hervorgehoben, muss die CFBundleVersion eine reine Versionsnummer sein, wie
1.2.3
wenn Sie Ihre Anwendung in den (iOS) App Store hochladen möchten.quelle
1.2.3
und erhöhen dann die Bundle-Version für jeden Build.Ja, sie sind verwandt, aber ihre Definition hängt davon ab, wie sie verwendet werden.
Muss immer eine Versionsnummer sein, zB 1.0
Verwendungsmodus 1 - Nur CFBundleVersion ist eingestellt
Muss eine Versionsnummer sein, zB 1.0. Muss mit der iTunes Connect-Version übereinstimmen.
Verwendungsmodus 2 - Sowohl CFBundleVersion als auch CFBundleShortVersionString sind festgelegt
Muss eine Build-Nummer sein, z. B. eine einzelne Ganzzahl wie 435163.
Muss eine Versionsnummer sein, zB 1.0. Muss mit der iTunes Connect-Version übereinstimmen.
Der Verwendungsmodus 2 ist der beste Weg. Hier sind einige Beispielnummern für den Upgrade-Pfad einer App:
Ein zusätzlicher Hinweis zu Versionsnummern: Wenn Sie ein kleines Update (z. B. eine Fehlerbehebung) an Ihre App senden, dürfen Sie niemals Punkte in der Versionsnummer verpassen, z. B. immer 1.0.1 und NIEMALS 1.01 verwenden, da Sie sonst das Risiko eingehen, diese nicht verwenden zu können bestimmte Versionsnummern in der Zukunft, da es nicht möglich ist, sie zu erhöhen.
quelle
Ja, sie sind alle verwandt.
Die Versionsnummer in itunesconnect ist die Versionsnummer, die Sie angeben müssen. Zum Beispiel 2.1.1 oder 3.1.2 usw. Dies sollte auch dem CFBundleShortVersionString entsprechen .
Bundle-Version In Xcode ( CFBundleVersion ) steht nur die Build-Nummer, die eine Iteration (freigegeben oder unveröffentlicht) der Anwendung identifiziert.
Bundle-Versionen string, short ( CFBundleShortVersionString ) ist eine Zahl, die aus drei durch Punkte getrennten Ganzzahlen besteht. Zunächst werden alle wichtigen Aktualisierungen der Anwendung dargestellt, z. B. Aktualisierungen, die neue Funktionen implementieren, oder wichtige Änderungen. Die zweite Ganzzahl bezeichnet Revisionen, die weniger wichtige Funktionen implementieren. Die dritte Ganzzahl steht für Wartungsversionen.
quelle
Seien Sie vorsichtig mit CFBundleVersion . Es ist nicht nur eine Produktionsnummer. Dieser Wert wird von Apple während des binären Upload-Vorgangs überprüft und kann fehlschlagen.
Stellen Sie sicher, dass Sie CFBundleVersion mit dem Wert CFBundleShortVersionString festlegen, wenn Sie Ihre Version für die Übermittlung erstellen.
Siehe diesen Beitrag darüber
quelle
CFBundleVersion
muss nicht übereinstimmenCFBundleShortVersionString
. Wenn Sie sich beispielsweise die aktuelle IPA-Datei für Chrome ansehen (jetzt im App Store), haben sie "34.0.1847.18" fürCFBundleVersion
und "34.1847.18" fürCFBundleShortVersionString
.Die akzeptierte Antwort ist der richtige Weg - fügen Sie dies nur als Beispiel hinzu.
Für unsere letzte Version war der "Bundle Version String, short" erforderlich, und ich habe ihn mit der Bundle-Versionsnummer (1.2.8 für unsere App) abgeglichen.
Anschließend habe ich Testflight aktiviert und die Version bis zur Apple-Überprüfung (1.2.8) unseren internen Testern zur Verfügung gestellt. Ein Tester fand jedoch ein Problem, das behoben werden musste, und wir löschten die vorhandene Binärdatei. Beim Hochladen eines neuen Builds wurde eine Fehlermeldung angezeigt, dass die Build-Version bereits hochgeladen wurde.
Nachdem ich einige SO-Links und Apple-Dokumente gelesen hatte, bestand mein Verständnis darin, die Bundle-Version 1.2.8.001 zu erstellen, während die Bundle-Version so kurz wie sie war beibehalten wurde. Wenn ein neuer Build erforderlich ist, erhöhen wir die Bundle-Version auf 1.2.8.002.
Hinweis: Der Upload wurde akzeptiert und der Build wird in der Vorabversion als "1.2.8.001" angezeigt. Die Versionsnummer bleibt 1.2.8.
quelle
Die akzeptierte Antwort dieses Links enthält gute Details :: Welche iOS-App-Versions- / Build-Nummer (n) MUSS bei der Veröffentlichung im App Store erhöht werden?
Aus Apple Docs
CFBundleVersion (Bundle-Version)
CFBundleVersion (String - iOS, OS X) gibt die Build-Versionsnummer des Bundles an, die eine Iteration (freigegeben oder unveröffentlicht) des Bundles identifiziert. Die Build-Versionsnummer sollte eine Zeichenfolge sein, die aus drei nicht negativen, durch Perioden getrennten Ganzzahlen besteht, wobei die erste Ganzzahl größer als Null ist. Die Zeichenfolge sollte nur numerische (0-9) und Punktzeichen (.) Enthalten. Führende Nullen werden von jeder Ganzzahl abgeschnitten und ignoriert (dh 1.02.3 entspricht 1.2.3). Dieser Schlüssel ist nicht lokalisierbar.
CFBundleShortVersionString (String für Bundle-Versionen, kurz)
CFBundleShortVersionString (String - iOS, OS X) gibt die Versionsnummer des Bundles an, die eine freigegebene Iteration der App identifiziert. Die Versionsnummer der Version ist eine Zeichenfolge, die aus drei durch Punkte getrennten Ganzzahlen besteht. Die erste Ganzzahl repräsentiert wichtige Revisionen der App, z. B. Revisionen, die neue Funktionen implementieren, oder wichtige Änderungen. Die zweite Ganzzahl bezeichnet Revisionen, die weniger wichtige Funktionen implementieren. Die dritte Ganzzahl steht für Wartungsversionen.
Der Wert für diesen Schlüssel unterscheidet sich vom Wert für CFBundleVersion, der eine Iteration (freigegeben oder unveröffentlicht) der App identifiziert. Dieser Schlüssel kann lokalisiert werden, indem er in Ihre InfoPlist.strings-Dateien aufgenommen wird.
quelle