是否可以知道用户是在安装新购买还是在Swift中下载更新?
我通过Android和Obj C看过这个问题,但在Swift中没有看到。
我正在使用SQLite数据库,如果有帮助的话。
答案 0 :(得分:2)
在UserDefaults
中跟踪应用程序版本。我不确定,你为Objective C
找到了什么,但我确信,它有点相同的想法。
假设您在appVersion
中的密钥UserDefaults
下跟踪您的应用版本。比你刚刚阅读它,将它与你当前的应用程序版本进行比较,并检查比较结果
您可以在AppDelegate
的
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
因此,每次您的应用启动时,当前的应用版本都会在UserDefaults
更新。
Swift 3的示例
let defaults = UserDefaults.standard
guard let currentAppVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String, let previousVersion = defaults.string(forKey: "appVersion") else {
// Key does not exist in UserDefaults, must be a fresh install
print("fresh install")
// Writing version to UserDefaults for the first time
defaults.set(currentAppVersion, forKey: "appVersion")
return
}
let comparisonResult = currentAppVersion.compare(previousVersion, options: .numeric, range: nil, locale: nil)
switch comparisonResult {
case .orderedSame:
print("same version is running like before")
case .orderedAscending:
print("earlier version is running like before")
case .orderedDescending:
print("older version is running like before")
}
// Updating new version to UserDefaults
defaults.set(currentAppVersion, forKey: "appVersion")