How do I get the current version of my iOS project in code? How do I get the current version of my iOS project in code? swift swift

How do I get the current version of my iOS project in code?


You can get the version and build numbers as follows:

let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! Stringlet build = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as! String

or in Objective-C

NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];NSString * build = [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];

I have the following methods in a category on UIApplication:

extension UIApplication {    static var appVersion: String {        return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String    }    static var appBuild: String {        return Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as! String    }    static var versionBuild: String {        let version = appVersion, build = appBuild                    return version == build ? "v\(version)" : "v\(version)(\(build))"    }}

Gist: https://gist.github.com/ashleymills/6ec9fce6d7ec2a11af9b


Here's the equivalent in Objective-C:

+ (NSString *) appVersion{    return [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];    }+ (NSString *) build{    return [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];}+ (NSString *) versionBuild{    NSString * version = [self appVersion];    NSString * build = [self build];    NSString * versionBuild = [NSString stringWithFormat: @"v%@", version];    if (![version isEqualToString: build]) {        versionBuild = [NSString stringWithFormat: @"%@(%@)", versionBuild, build];    }    return versionBuild;}

Gist: https://gist.github.com/ashleymills/c37efb46c9dbef73d5dd


Here's what worked on Xcode 8, Swift 3:

let gAppVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") ?? "0"let gAppBuild = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") ?? "0"print("Version: \(gAppVersion)")print("Build: \(gAppBuild)")


In Objective C:

1)For getting App version you have to use a:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

2)For getting Build version you have to use a:

NSString *buildVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];