567 Stimmen

Wie erhalte ich die App-Version und die Build-Nummer mit Swift?

Ich habe eine IOS-App mit einem Azure-Backend und möchte bestimmte Ereignisse protokollieren, wie z.B. Anmeldungen und welche Versionen der App die Benutzer verwenden.

Wie kann ich die Version und Build-Nummer mit Swift zurückgeben?

13voto

Giang Punkte 3341

Bundle+Extensions.swift

import Foundation

extension Bundle {
    var versionNumber: String? {
        return infoDictionary?["CFBundleShortVersionString"] as? String
    }

    var buildNumber: String? {
        return infoDictionary?["CFBundleVersion"] as? String
    }

    var bundleName: String? {
        return infoDictionary?["CFBundleName"] as? String
    }
}

Verwendung:

someLabel.text = Bundle.main.versionNumber

9voto

Charlie Seligman Punkte 3877

Meine Antwort (Stand Aug 2015), vorausgesetzt, dass sich Swift weiterentwickelt:

let version = NSBundle.mainBundle().infoDictionary!["CFBundleVersion"] as! String

8voto

Dby Punkte 111

Für Swift 5.0 :

let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String

8voto

Daniel Armyr Punkte 81

Nachdem ich die Dokumentation angesehen habe, glaube ich, dass das Folgende sauberer ist:

let version = 
NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") 
as? String

Quelle: "Die Verwendung dieser Methode wird gegenüber anderen Zugriffsmethoden bevorzugt, da sie den lokalisierten Wert eines Schlüssels zurückgibt, wenn einer verfügbar ist."

7voto

Swift 5.3

let infoDictionaryKey = kCFBundleVersionKey as String
guard let currentVersion = Bundle.main.object(forInfoDictionaryKey: infoDictionaryKey) as? String
else { fatalError("Es wurde erwartet, dass eine Bündelversion im Info-Dictionary gefunden wird") }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X