(Swift) iOS 앱이 최신 버전인지 확인
소개
앱 버전이 AppStore 버전과 비교하여 최신 버전인지 확인하는 방법을 설명했습니다.
예를 들면 구버전의 경우는 AppStore에 유도하고 싶은 경우 등에 사용할 수 있을까 생각합니다.
코드
Apple ID(앱 ID)를 전달하면 결과(AppVersionCompareType)가 반환됩니다.
AppVersionCompare.swiftimport Foundation
enum AppVersionCompareType {
case latest
case old
case error
}
class AppVersionCompare {
static func toAppStoreVersion(appId: String, completion: @escaping (AppVersionCompareType) -> Void) {
guard let url = URL(string: "https://itunes.apple.com/jp/lookup?id=\(appId)") else {
completion(.error)
return
}
let request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 60)
let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in
guard let data = data else {
completion(.error)
return
}
do {
let jsonData = try JSONSerialization.jsonObject(with: data) as? [String: Any]
guard let storeVersion = ((jsonData?["results"] as? [Any])?.first as? [String : Any])?["version"] as? String
, let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String else {
completion(.error)
return
}
switch storeVersion.compare(appVersion, options: .numeric) {
case .orderedDescending:
//appVersion < storeVersion
completion(.old)
case .orderedSame, .orderedAscending:
//storeVersion <= appVersion
completion(.latest)
}
}catch {
completion(.error)
}
})
task.resume()
}
}
사용법
아래와 같이 사용합니다.
viewDidLoad AppVersionCompare.toAppStoreVersion(appId: appId) { (type) in
switch type {
case .latest:
print("最新バージョンです")
case .old:
print("旧バージョンです")
case .error:
print("エラー")
}
}
아래의 앱 버전(Version 이 경우 2.0.0)과 AppStore 버전을 비교하고 있습니다.
마지막으로
GitHub에 코드를 넣습니다.
htps : // 기주 b. 코 m / 히데 유키 토네 / 아
참고
ぃ tp // 코 m / 토끼 / ms / 5f8 1f1f41 58f9 0035
Reference
이 문제에 관하여((Swift) iOS 앱이 최신 버전인지 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hideyukitone/items/a55691077a198ab7acf2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Apple ID(앱 ID)를 전달하면 결과(AppVersionCompareType)가 반환됩니다.
AppVersionCompare.swift
import Foundation
enum AppVersionCompareType {
case latest
case old
case error
}
class AppVersionCompare {
static func toAppStoreVersion(appId: String, completion: @escaping (AppVersionCompareType) -> Void) {
guard let url = URL(string: "https://itunes.apple.com/jp/lookup?id=\(appId)") else {
completion(.error)
return
}
let request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 60)
let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in
guard let data = data else {
completion(.error)
return
}
do {
let jsonData = try JSONSerialization.jsonObject(with: data) as? [String: Any]
guard let storeVersion = ((jsonData?["results"] as? [Any])?.first as? [String : Any])?["version"] as? String
, let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String else {
completion(.error)
return
}
switch storeVersion.compare(appVersion, options: .numeric) {
case .orderedDescending:
//appVersion < storeVersion
completion(.old)
case .orderedSame, .orderedAscending:
//storeVersion <= appVersion
completion(.latest)
}
}catch {
completion(.error)
}
})
task.resume()
}
}
사용법
아래와 같이 사용합니다.
viewDidLoad AppVersionCompare.toAppStoreVersion(appId: appId) { (type) in
switch type {
case .latest:
print("最新バージョンです")
case .old:
print("旧バージョンです")
case .error:
print("エラー")
}
}
아래의 앱 버전(Version 이 경우 2.0.0)과 AppStore 버전을 비교하고 있습니다.
마지막으로
GitHub에 코드를 넣습니다.
htps : // 기주 b. 코 m / 히데 유키 토네 / 아
참고
ぃ tp // 코 m / 토끼 / ms / 5f8 1f1f41 58f9 0035
Reference
이 문제에 관하여((Swift) iOS 앱이 최신 버전인지 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hideyukitone/items/a55691077a198ab7acf2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
AppVersionCompare.toAppStoreVersion(appId: appId) { (type) in
switch type {
case .latest:
print("最新バージョンです")
case .old:
print("旧バージョンです")
case .error:
print("エラー")
}
}
GitHub에 코드를 넣습니다.
htps : // 기주 b. 코 m / 히데 유키 토네 / 아
참고
ぃ tp // 코 m / 토끼 / ms / 5f8 1f1f41 58f9 0035
Reference
이 문제에 관하여((Swift) iOS 앱이 최신 버전인지 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hideyukitone/items/a55691077a198ab7acf2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)