【问题标题】:How to detect First launch of app on every new version upgrade?如何检测每次新版本升级时首次启动应用程序?
【发布时间】:2016-10-13 12:26:16
【问题描述】:

我需要在用户将应用升级到较新版本后检测应用的首次启动。在用户将应用程序升级到新版本后,我只需要在首次启动应用程序时执行某些任务。网上有很多链接,但没有一个能清楚地回答我的查询。如何在 Swift 2 和 iOS 9 中实现这一点。

大多数可用的答案都说要在 NSUserDefaults 中维护一个键并将其值设置为 false 并在首次启动后使其为 true。但问题是在我升级我的应用程序后,变量仍然是真实的,因此我的方案在应用程序升级时失败。任何帮助将非常感激。谢谢!

【问题讨论】:

  • 做同样的事情,但不是保存布尔值,而是保存构建/应用程序版本。在你的Info.plist中:stackoverflow.com/questions/1492351/…阅读,如果相同,不更新,如果没有,新版本,然后写。
  • @Larme 谢谢!但是,你能更详细地描述一下吗?如果我没看错你的意思,我应该比较版本,如果版本号有变化,那么这个任务运行,否则不运行。对吗?
  • 在伪代码中,这应该是诀窍:savedVersion = readStringVersionFromUserDefault(); currentVersion = readStringVersionFromBundlePlist(); if (savedVersion.isNil or currentVersion != savedVersion){firstTimeUserLaunchedThisVersion(); saveStringVersionFromBundlePlistIntoUserDefaults();}else{UserHasAlreadyLaunchedThisVersion}
  • 谢谢@Larme 我知道它的回复很晚:P

标签: ios swift app-update


【解决方案1】:

试试这个:

    let existingVersion = NSUserDefaults.standardUserDefaults().objectForKey("CurrentVersionNumber") as? String
    let appVersionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String

    if existingVersion !=  appVersionNumber {
        NSUserDefaults.standardUserDefaults().setObject(appVersionNumber, forKey: "CurrentVersionNumber")
        NSUserDefaults.standardUserDefaults().synchronize()
       //You can handle your code here
    }

【讨论】:

    【解决方案2】:

    更新 Yogesh 完美而简单的 swift 4 解决方案

        let existingVersion = UserDefaults.standard.object(forKey: "CurrentVersionNumber") as? String
        let appVersionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
    
        if existingVersion != appVersionNumber {
            print("existingVersion = \(String(describing: existingVersion))")
            UserDefaults.standard.set(appVersionNumber, forKey: "CurrentVersionNumber")
    
     // run code here.
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 2020-07-25
      相关资源
      最近更新 更多