1. Copy this script into a new run script phase under (Select the Blue Project Icon > Build Phases)
2. Click the ➕ button
3. Paste the script below
#!/bin/bash
# Auto Increment Version Script
buildPlist=$INFOPLIST_FILE
echo $buildPlist
CFSVString=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$buildPlist")
CFBundleVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$buildPlist")
BUILD_NR=${CFBundleVersion##*.}
BUILD_NR=$(($BUILD_NR + 1))
#echo $BUILD_NR
CFBundleVersion=$CFSVString".0."$BUILD_NR
#echo $CFBundleVersion
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $CFBundleVersion" "$buildPlist"
I add this extension to UIApplication
extension UIApplication {
struct Constants {
static let CFBundleShortVersionString = "CFBundleShortVersionString"
}
class func appVersion() -> String {
return NSBundle.mainBundle().objectForInfoDictionaryKey(Constants.CFBundleShortVersionString) as! String
}
class func appBuild() -> String {
return NSBundle.mainBundle().objectForInfoDictionaryKey(kCFBundleVersionKey as String) as! String
}
class func versionBuild() -> String {
let version = appVersion(), build = appBuild()
return version == build ? "v\(version)" : "v\(version)(\(build))"
}
}
Then use it on a label like so:
@IBOutlet weak var appVersionLabel: UILabel! { didSet {
appVersionLabel.text = "Build Version: \(UIApplication.versionBuild())"
}
}