-
[Swift] 버전 컨트롤iOS/Swift 2020. 7. 6. 16:46
준비물
- Appversion: String
- ServerVersion: String
준비물 Value
- Appversion = "1.0.0"
- ServerVersion = "1.0.0"
Code
⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
더보기//MARK:[version check begin]
public class versionCheck {
class func checkVersionState(serverVersion: String) -> VersionCheckType{
let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
//현재 앱 버전과 서버에서 내려주는 버전이 같을경우
if appVersion == serverVersion {
//버전이 같습니다 APP_VERSION_SAME
print("👌👌👌👌👌👌👌👌👌👌\nAppVersion Same\n앱버전이 같습니다.\n👌👌👌👌👌👌👌👌👌👌")
return .APP_VERSION_SAME
}
//ex) 1.0.0
let currentServerVersion = serverVersion.split(separator: ".")//["1", "0", "0"]
let currentAppVersion = appVersion.split(separator: ".")//["1", "0", "0"]
//서버혹은 앱버전이 소수점이 많은 상태 ex)App 1.0 ! Server 1.0.0
if currentAppVersion.count != currentServerVersion.count {
print("⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️\nAppVersion&ServerVersion\nDecimal point Not Match Error\n앱버전과 서버버전의 소수점이 달라요. 버전컨트롤을 안하는것 같습니다.\n⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️⁉️")
return .APP_VERSION_ERROR
}
var levelCount = 0//메이저, 마이너, 버그픽스 레벨 카운트
for data in currentAppVersion {
let appVersionData = Int(data)!//앱버전
let serverVersionData = Int(currentServerVersion[levelCount])!//서버버전
var versionCheckString: String
switch levelCount {
case 0: versionCheckString = "MajorVersion"
break
case 1: versionCheckString = "MinorVersion"
break
case 2: versionCheckString = "BugfixVersion"
break
//버전의 소수점이 높아진다면 Case에 텍스트를 추가하여 입력 및 구분하도록 합니다.
/*
case 3: versionCheckString = "NormalVersion"
break
*/
default:
versionCheckString = "??????"
break
}
if appVersionData != serverVersionData {
//버전이 같지않아요 낮거나 높아요
if appVersionData > serverVersionData {
//앱버전이 높아요 이건 심사중일수도 있어요
print("⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️\nApp \(versionCheckString) High\n앱버전이 높습니다.\n⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️⤴️")
return .APP_VERSION_HIGH
} else if appVersionData < serverVersionData {
//앱버전이 낮아요
print("⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️\nApp \(versionCheckString) Low\n앱버전이 낮습니다.\n⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️⤵️")
return .APP_VERSION_LOW
}
}
levelCount += 1
if levelCount == currentAppVersion.count {
break
}
}
print("👌👌👌👌👌👌👌👌👌👌\nAppVersion Same\n앱버전이 같습니다.\n👌👌👌👌👌👌👌👌👌👌")
return .APP_VERSION_SAME
}
}
enum VersionCheckType {
case APP_VERSION_LOW
case APP_VERSION_SAME
case APP_VERSION_HIGH
case APP_VERSION_ERROR //서버버전과 앱버전의 분기가 다를때 나는 에러
}
//MARK:[version check end]
⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️
예제
'iOS > Swift' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기 (0) 2021.09.13 [Swift] isEmpty 사용법 (String 의 값이 있는가 판별) (0) 2021.06.14 [Swift] StatusBar 높이 구하기 (0) 2021.04.29 [Swift] iOS 탈옥 감지 JailBreak 이렇게 쓰면 돼 (0) 2021.04.01 [Swift] iOS 내부저장 UserDefaults 이렇게 쓰면 돼 (0) 2021.02.08