任何人都可以帮助我如何为强制更新我的iOS应用程序提供警示。如果AppStore上有新版本,在任何设备中有旧版本或不同版本,那么我想检查版本是否不同,然后用户从AppStore更新新版本。以及如何获取我的应用程序的应用程序信息。
答案 0 :(得分:0)
您可以通过将现代应用程序的版本与 App Store 上的版本进行比较来开发该功能。
enum VersionError: Error {
case invalidResponse, invalidBundleInfo
}
class AppStoreCheck {
static 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: your appstore url) else {
throw VersionError.invalidBundleInfo
}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
do {
if let error = error { throw error }
guard let data = data else { throw VersionError.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 VersionError.invalidResponse
}
let verInt = NSString.init(string: version).intValue
let currentVerInt = NSString.init(string: currentVersion).intValue
completion(verInt > currentVerInt, nil)
} catch {
completion(nil, error)
}
}
task.resume()
return task
}
}
该类将您的应用版本与您的应用商店版本进行比较,并将其报告为布尔值。
您可以调用 AppStoreCheck.isUpdateAvailable
并通过 bool 值添加该函数。