Es gibt 2 Zahlen!
Die Marketing- Versionsnummer ist für die Kunden als Versionsnummer bezeichnet . Es beginnt mit 1.0 und reicht für größere Updates auf 2.0 , 3.0 , für kleinere Updates auf 1.1 , 1.2 und für Fehlerkorrekturen auf 1.0.1 , 1.0.2 . Diese Nummer orientiert sich an Releases und neuen Funktionen. Es muss nicht bei 9 aufhören, 1.11.23 ist eine vernünftige Versionsnummer.
Die Build-Nummer ist meistens die interne Anzahl der Builds , die bis dahin erstellt wurden. Einige verwenden jedoch andere Nummern wie die Zweigstellennummer des Repositorys oder die Festschreibungsnummer. Diese Nummer sollte eindeutig sein , um die verschiedenen Builds zu unterscheiden, die nur geringfügige inkrementelle Änderungen aufweisen.
So erhalten Sie die Versionsnummer :
Ziel c:
NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
Swift <3.0:
let appVersionString: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
Swift 3.0+ (getestet mit 5.0):
let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
So erhalten Sie die Build- Nummer:
Ziel c:
NSString * appBuildString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
Swift <3.0:
let buildNumber: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String
Swift 3.0+ (getestet bis 5.0):
let buildNumber: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
Wenn Sie beide in einem wollen:
Verwenden Sie zuerst die obigen Zeilen und dann die folgende.
Ziel c:
NSString * versionBuildString = [NSString stringWithFormat:@"Version: %@ (%@)", appVersionString, appBuildString];
Swift (getestet bis 5.0):
let versionAndBuildNumber: String = "\(appVersionString) (\(buildNumber))"
Anmerkungen:
Die Werte im Hauptpaket sind nicht immer vorhanden. In einer Befehlszeilenanwendung gibt es beispielsweise kein CFBundleShortVersionStringoder CFBundleVersion. Daher werden die Methoden zurückgegeben nilund stürzen ab, da im Code ein falscher Downcast ausgeführt wird. In normalen Cocoa iOS- und Mac-Apps sind diese Werte jedoch definiert und werden nicht gelöscht.
Dies wird mit Xcode Version 7.3 (7D175) getestet . Die Build-Nummer wird häufig in Klammern angegeben. Die Build-Nummer ist hexadezimal oder dezimal.

In Xcode können Sie die Build-Nummer automatisch als Dezimalzahl erhöhen, indem Sie Run scriptin den Projekteinstellungen Folgendes in die Build-Phase einfügen
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Verwenden Sie für die hexadezimale Build-Nummer dieses Skript
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Gehen Sie dazu Xcodewie folgt vor:
Schritt 1

Schritt 2

Schritt 3
