Rad'Val
Rad'Val

Reputation: 9241

How to get your own app version from xcode?

I wonder if there is a way to get your own app version in code after you put it in the "Summary" tab in xCode. One way seems to be to search Info.plist for CFBundleVersion key, but is there any other, easier, more convenient way?

Upvotes: 42

Views: 37262

Answers (4)

bjd23
bjd23

Reputation: 286

For Swift:

Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")

Upvotes: 15

Chris Ledet
Chris Ledet

Reputation: 11628

You can find it in the main bundle. I think it's something like:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

Upvotes: 118

lobianco
lobianco

Reputation: 6276

I typically use the Build number (CFBundleVersion) to keep track of, well, the number of builds, and the Version number (CFBundleShortVersionString) for marketing purposes. I use a run script to auto-increment my build number and I update the version number manually before each new release. So if you want to include the actual Version number in your code as opposed to the Build number, use this:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]

or

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

Here's the run script that increments the build number for anyone interested:

#!/bin/bash

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

Upvotes: 28

Aravindhan
Aravindhan

Reputation: 15628

NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

Upvotes: 12

Related Questions