我正在检查我的应用程序版本。如果有新版本,我的应用程序会收到通知,如果出现App Store
屏幕,请按“确定”。我正在检查应用程序版本来执行此操作,但它总是显示错误。
func isUpdateAvailable(completion: @escaping (Bool?, Error?) -> Void) throws -> URLSessionDataTask {
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 IXError.invalidBundleInfo
}
Log.Debug(currentVersion)
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
do {
if let error = error { throw error }
guard let data = data else { throw IXError.invalidResponse }
let json = try JSONSerialization.jsonObject(with: data, options: [.allowFragments]) as? [String: Any]
guard let result = (json?["results"] as? [Any])?.first as? [String: Any], let version = result["version"] as? String else {
throw IXError.invalidResponse
}
completion(version != currentVersion, nil)
} catch {
completion(nil, error)
}
}
task.resume()
return task
}
用法
_ = try? isUpdateAvailable { (update, error) in
if let error = error {
Log.Error(error)
} else if let update = update {
Log.Info(update)
}
}
是因为我的应用没有应用商店吗?
1.如果我有一个应用程序商店,如果我有一个版本要更新,我可以得到什么回应?
1.如何进入App Store?
请多多帮助我。
4条答案
按热度按时间anauzrmj1#
是的,您使用的方法必须是已发布的应用程序。
如果您使用未发布的应用程序,您将获得
results = []
像这样转到
App Store
注意:
这种方法不会很及时,也就是说你刚刚发布的应用程序,即使可以在
App store
中搜索到,但results
不会立即更新。更新信息将在大约1小时或更长时间后提供nnt7mjpx2#
我已经实现了这种方式来更新我的新版本。
步骤1:我已经保存了我的当前版本,这将是活的。示例:
}
步骤2:检查我的应用程序版本已经保存,等于活的应用程序或没有.
示例:
step 3:此方法将检查应用商店中的当前版本。
示例:
->对于警报方法,当点击更新按钮时可以跳转到App Store以更新当前版本:
最后!你可以这个弹出更新x1c 0d1x
fzsnzjdm3#
我已经通过一个完成处理程序完成了这一点
appStoreVersion包含您在应用商店中的应用版本。请记住:当您的应用在应用商店上线时,您可能需要24小时才能看到最新版本。下面是如何使用它:
您可以使用成功版本来做不同的事情,它的版本无法检索。即您未连接或。您可以检查它是如何在此应用程序中使用(设置选项卡):https://apps.apple.com/us/app/group-expenses-light/id1285557503
zkure5ic4#
我也使用了completion handler。