[swift] Swift에서 키체인을 사용하여 앱 버전 관리하기

앱 개발 시에 중요한 부분 중 하나는 앱의 버전을 관리하는 것입니다. 이를 효과적으로 관리하면 사용자에게 새로운 기능을 제공하거나 버그를 수정하는 등의 업데이트를 쉽게 할 수 있습니다.

Swift에서는 키체인을 사용하여 앱의 버전을 안전하게 저장하고 가져올 수 있습니다. 키체인은 암호화된 저장소로, 앱과 관련된 중요한 데이터를 안전하게 보관하는 데 사용됩니다.

키체인에 버전 정보 저장하기

import Foundation
import Security

let service = "com.example.app"
let versionKey = "AppVersion"

func setVersionInKeychain(version: String) {
    let data = version.data(using: .utf8)
    
    let query: [String: AnyObject] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecAttrService as String: service as AnyObject,
        kSecAttrAccount as String: versionKey as AnyObject,
        kSecValueData as String: data as AnyObject
    ]
    
    let status = SecItemAdd(query as CFDictionary, nil)
    
    if status != errSecSuccess {
        print("Failed to set version in Keychain")
    }
}

func getVersionFromKeychain() -> String? {
    let query: [String: AnyObject] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecAttrService as String: service as AnyObject,
        kSecAttrAccount as String: versionKey as AnyObject,
        kSecMatchLimit as String: kSecMatchLimitOne,
        kSecReturnData as String: kCFBooleanTrue
    ]
    
    var dataTypeRef: AnyObject? = nil
    let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)
    
    if status != errSecSuccess {
        print("Failed to get version from Keychain")
        return nil
    }
    
    guard let data = dataTypeRef as? Data, let version = String(data: data, encoding: .utf8) else {
        return nil
    }
    
    return version
}

위 코드는 버전 정보를 키체인에 저장하고 가져올 수 있는 setVersionInKeychaingetVersionFromKeychain 함수를 보여줍니다.

setVersionInKeychain 함수는 version 매개변수로 전달받은 앱 버전을 키체인에 저장합니다. getVersionFromKeychain 함수는 키체인에서 버전 정보를 가져옵니다.

사용 예시

let currentVersion = "1.2.0"

// 키체인에 버전 정보 저장하기
setVersionInKeychain(version: currentVersion)

// 키체인에서 버전 정보 가져오기
if let savedVersion = getVersionFromKeychain() {
    print("Saved version: \(savedVersion)")
} else {
    print("No version found in Keychain")
}

위 코드는 currentVersion 변수에 현재 앱 버전을 할당한 후, setVersionInKeychain 함수를 사용해 키체인에 버전 정보를 저장합니다. 그런 다음 getVersionFromKeychain 함수를 사용해 키체인에서 저장된 버전 정보를 가져옵니다.

요약

Swift에서는 키체인을 사용하여 앱의 버전 정보를 안전하게 관리할 수 있습니다. setVersionInKeychain 함수로 버전 정보를 키체인에 저장하고, getVersionFromKeychain 함수로 키체인에서 버전 정보를 가져올 수 있습니다.

키체인을 사용하면 앱의 버전을 안전하게 관리할 수 있으므로, 업데이트나 버그 수정과 같은 작업을 원활하게 수행할 수 있습니다.

참고 자료