主要用于程序升级,开启程序后是否显示新特性两个方面。
1.苹果app版本
苹果规定,程序的版本只能升不能降。例如1.0->1.1可以,1.1->1.0就不可以,不允许上架。
2.app版本存放位置
版本信息存放在Info.plist文件中,在工程的General栏中也可以看到。当app更新后,这里的版本信息会自动修改,因此获取Info.plist中的版本信息即为最新的版本。如果想人为的修改它们在两处的任意一处均可。
3.代码实现(Swift)
程序中将上次的版本保存入沙盒,然后和最新的做比较。实现如下:
/// 如果程序刚更新则返回true
private func isUpdated() -> Bool { // 从Info.plist中获取当前程序的版本
let currentVersionStr = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
let currentVersion = NSNumberFormatter().numberFromString(currentVersionStr)!.doubleValue // 获取沙盒中的版本
let versionKey = "sandboxKey"
let userDefaults = NSUserDefaults.standardUserDefaults()
let sandboxVersion = userDefaults.doubleForKey(versionKey) // 将当前版本记录入沙盒
userDefaults.setDouble(currentVersion, forKey: versionKey)
userDefaults.synchronize() // 只有大于才返回true
return currentVersion > sandboxVersion
}