Reputation: 9241
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
Reputation: 286
For Swift:
Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")
Upvotes: 15
Reputation: 11628
You can find it in the main bundle. I think it's something like:
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
Upvotes: 118
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
Reputation: 15628
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
Upvotes: 12