【Swift】App Storeで公開済みのアプリのバージョンを取得する

今回は、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 で公開しているアプリのバージョンを取得する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG