知道用户是否更新应用程序或新购买(swift 3)

时间:2017-01-01 09:24:16

标签: swift swift3

是否可以知道用户是在安装新购买还是在Swift中下载更新?

我通过Android和Obj C看过这个问题,但在Swift中没有看到。

我正在使用SQLite数据库,如果有帮助的话。

1 个答案:

答案 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")