투케이2K

74. (ios/swift) ios 파이어베이스 리모트 서비스 (firebase remote config) 사용해 앱 최신 버전 관리 실시 본문

IOS

74. (ios/swift) ios 파이어베이스 리모트 서비스 (firebase remote config) 사용해 앱 최신 버전 관리 실시

투케이2K 2021. 12. 7. 14:59

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [파이어베이스 앱 최신 버전 확인 실시]
    func checkUpdateMobileVersion(){
        print("")
        print("===============================")
        print("[AppDelegate >> checkUpdateMobileVersion]")
        print("설명 :: 파이어베이스 리모트 앱 최신 버전 체크 수행")
        print("===============================")
        print("")
        
        // [사전 필요 사항]
        /*
        1. 파이어베이스 ios 프로젝트 생성
        2. 파이어베이스 콘솔 사이트 Remote Config 메뉴에서 >> app_version_ios [key] 생성 필요
        3. ios 앱 내부 파이어베이스 적용 필요 사항 :
           - 파이어베이스 연동 라이브러리 설치 진행 (메시지, 애널리스틱, 코어, 리모트)
           - 파이어베이스 프로젝트 생성 시 저장한 GoogleService-Info 파일 앱 내부에 적용 필요
        4. 파이어베이스 참고 사이트 :
           - https://firebase.google.com/docs/remote-config/get-started?platform=ios&hl=ko
        5. 호출 로직 : AppDelegate 에서 초기 application (didFinishLaunchingWithOptions) 상태에서 호출 실시
        */
        
        
        // [파이어베이스 config 초기화 수행]
        let fireBaseConfigFile = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist")!
        let firOptions = FirebaseOptions(contentsOfFile: fireBaseConfigFile)!
        FirebaseApp.configure(options: firOptions)
        
        
        // [파이어베이스에 등록된 remote key 정의]
        let key = "app_version_ios"
        let value = "0.0"
        
        
        // [파이어베이스 리모트 객체 생성 실시]
        var remoteConfig = RemoteConfig.remoteConfig()
        var settings = RemoteConfigSettings()
        settings.minimumFetchInterval = 0
        remoteConfig.configSettings = settings
        
        
        // [해당 키값이 없을 경우 디폴트 값 삽입]
        let defaultDic: NSDictionary = ["\(key)":"\(value)"]
        remoteConfig.setDefaults(defaultDic as! [String : NSObject])

        
        // [최신 앱 버전 확인 이벤트 리스너 수행 실시]
        remoteConfig.fetch { (status, error) -> Void in
            if status == .success {
                remoteConfig.activate { changed, error in
                    print("")
                    print("===============================")
                    print("[AppDelegate >> checkUpdateMobileVersion]")
                    print("설명 :: 파이어베이스 리모트 앱 최신 버전 체크 성공")
                    print("version :: \(remoteConfig.configValue(forKey: "\(key)").stringValue ?? "")")
                    print("===============================")
                    print("")
                }
            }
            else {
                print("")
                print("===============================")
                print("[AppDelegate >> checkUpdateMobileVersion]")
                print("설명 :: 파이어베이스 리모트 앱 최신 버전 체크 에러")
                print("error :: \(error?.localizedDescription)")
                print("===============================")
                print("")
            }
        }
    }

 


[결과 출력]

 
 
반응형
Comments