【问题标题】:Can I find out if the iOS app has been updated?我可以查看 iOS 应用程序是否已更新?
【发布时间】:2020-01-22 05:48:13
【问题描述】:

我想问一下,我们是否有任何类型的通知或标志,以防应用从 App Store 更新

例如当用户在更新后第一次打开应用程序时,我们在didFinishLaunchingWithOptionsAppDelegate 中有一些标志要识别。

【问题讨论】:

  • 实现相同目的的替代方法:您可以在首选项中保存以前的应用程序版本,并在 didFinishLaunchingWithOptions 中将您当前的应用程序版本与首选项版本进行比较。并且不要忘记更新首选项中的版本。

标签: ios app-store appdelegate


【解决方案1】:

您可以将应用程序版本存储在用户默认值中,并检查当前应用程序版本是否高于您存储在用户默认值中的版本。如果是这样,将用户默认更新为新版本。

【讨论】:

【解决方案2】:

您可以查看应用商店版本。以及您当前的应用版本。

guard let info = Bundle.main.infoDictionary,
    let currentVersion = info["CFBundleShortVersionString"] as? String,
    let identifier = info["CFBundleIdentifier"] as? String,
    let url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(identifier)") else {
    throw VersionError.invalidBundleInfo
}
let data = try Data(contentsOf: url)
guard let json = try JSONSerialization.jsonObject(with: data, options: [.allowFragments]) as? [String: Any] else {
    throw VersionError.invalidResponse
}
if let result = (json["results"] as? [Any])?.first as? [String: Any], let version = result["version"] as? String {
    return version != currentVersion
}
throw VersionError.invalidResponse

【讨论】:

  • 请仔细阅读问题。我不需要检查是否有可用的更新
猜你喜欢
  • 2013-05-29
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 2016-05-01
相关资源
最近更新 更多