今回は、Swift で App Store で公開しているアプリのバージョンを取得する方法についてです。
なお、以前には「【JavaScript】App Storeに公開済みのアプリのバージョンを取得する方法」と言う記事で、同様のことを JavaScript で行う方法を紹介しました。
今回参考にさせていただいた記事はこちら。
ios – Check if my app has a new version on AppStore – Stack Overflow
https://stackoverflow.com/questions/6256748/check-if-my-app-has-a-new-version-on-appstore
Objective-C での書き方もありますが、それより下に書かれていた Swift での書き方を参考にさせていただきました。
サンプルコードは下記の通りです。
func appVersionCheck() { guard let info = Bundle.main.infoDictionary, let appVersion = info["CFBundleShortVersionString"] as? String, let identifier = info["CFBundleIdentifier"] as? String, let url = URL(string: "https://itunes.apple.com/lookup?bundleId=\(identifier)") else { return } let task = URLSession.shared.dataTask(with: url) { (data, response, error) in guard let data = data else { return } do { let json = try JSONSerialization.jsonObject(with: data, options: [.allowFragments]) as? [String: Any] guard let result = (json?["results"] as? [Any])?.first as? [String: Any], let storeVersion = result["version"] as? String else { return } if appVersion != storeVersion { // appVersion と storeVersion が異なっている時に実行したい処理を記述 } } catch let error { print(error) } } task.resume() }
上記コードでは、端末にインストールされているアプリのバージョンを取得後、App Store から公開済みアプリのバージョンを取得し、それらを比較すると言う処理を行なっています。
14行目で端末のアプリバージョンと App Store のアプリバージョンを比較し、異なっている場合は任意の処理を実行するようにしています。
例えば、アラートを表示し、App Store に誘導するのが一般的だと思います。
実際に上記コードを追加し実行したところ、問題なく各アプリバージョンが取得できました!
以上、Swift で App Store で公開しているアプリのバージョンを取得する方法についてでした。
ご参考になれば幸いです。