투케이2K

153. (TWOK/UTIL) [Ios/Swift] C_FirebaseCrashlyticsLog : 파이어베이스 크래시 리틱스 로그 설정 관련 유틸 파일 본문

투케이2K 유틸파일

153. (TWOK/UTIL) [Ios/Swift] C_FirebaseCrashlyticsLog : 파이어베이스 크래시 리틱스 로그 설정 관련 유틸 파일

투케이2K 2025. 1. 5. 12:27

[설 명]

프로그램 : Ios / Swift

설 명 : C_FirebaseCrashlyticsLog : 파이어베이스 크래시 리틱스 로그 설정 관련 유틸 파일

 

[소스 코드]

import Foundation
import UIKit
// ----------------------------------
// MARK: - [파이어베이스 라이브러리]
// ----------------------------------
import Firebase
// ----------------------------------

class C_FirebaseCrashlyticsLog {



    /**
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * TODO [클래스 설명]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 1. 파이어베이스 크래시 리틱스 로그 관리 클래스
     *
     * (중요) : 디버그 모드로 빌드 시에는 파이어베이스 크래시리틱스에 로그가 전송 되지 않으므로, Release 모드로 전환 후 확인 필요
     *  >> Xcode 스킴에서 Build Configuration을 Release로 변경하고 Debug executable 체크를 해제
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 2. 참고 : 사전 파이어베이스 콘솔에서 프로젝트 생성 필요
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 3. 참고 : 파이어베이스 Crashlytics 라이브러리 추가 필요
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 4. 참고 : 파이어베이스 공식 사이트
     *
     * https://firebase.google.com/docs/crashlytics/customize-crash-reports?hl=ko&platform=ios
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * */





    /**
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * //  TODO [빠른 로직 찾기 : 주석 로직 찾기]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * // [SEARCH FAST] : crashlyticsLog : 파이어베이스 크래시 리틱스 로그 작성 수행
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * // [SEARCH FAST] : crashlyticsSetUser : 파이어베이스 크래시 리틱스 로그에서 특정 사용자 식별 수행 값 저장
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     *
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     *
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     *
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * */
    
    
    
    
    
    // -----------------------------------------------------------------------------------------
    // MARK: - [전역 변수 선언]
    // -----------------------------------------------------------------------------------------
    private static let ACTIVITY_NAME = "C_FirebaseCrashlyticsLog"





    
    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : crashlyticsLog : 파이어베이스 크래시 리틱스 로그 작성 수행
    // -----------------------------------------------------------------------------------------
    /*
     *
     * -----------------------------------------------------------------------------------------
     * TODO [설명] : 파이어베이스 크래시 리틱스 로그 파일 작성 메소드
     *
     * 1) 파이어베이스 콘솔에서 앱 사용 중 에러가 발생해 Kill 된 경우 해당 로그를 추적해서 어디에서 다운이 되었는지 확인 수행
     * 2) Crashlytics 는 앱의 속도가 느려 지지 않도록 로그의 크기를 64KB로 제한 하고, 세션의 로그 크기가 한도를 초과 하면 이전 로그 항목을 삭제
     * -----------------------------------------------------------------------------------------
     * TODO [Input] : 인풋 파라미터
     *
     * @param data : 파이어베이스 크래시 리틱스 로그 쌓기 위한 데이터 (ex : hello)
     * -----------------------------------------------------------------------------------------
     * TODO [Return] : 리턴 데이터
     *
     * @return : null
     * -----------------------------------------------------------------------------------------
     * TODO [History] : 이력 정리 [create , update , delete]
     *
     * 1) KwonGiHwan : create : 2025-01-04 : 최초 생성 수행
     * -----------------------------------------------------------------------------------------
     *
     * */
    // -----------------------------------------------------------------------------------------
    // TODO [호출 방법 소스 코드]
    // -----------------------------------------------------------------------------------------
    /*
     
     C_FirebaseCrashlyticsLog().crashlyticsLog(data: "A_Intro :: Start")
     
    */
    // -----------------------------------------------------------------------------------------
    func crashlyticsLog(data: String) {
        
        DispatchQueue.main.async {
            S_Log._F_(description: C_FirebaseCrashlyticsLog.ACTIVITY_NAME + " :: crashlyticsLog :: 파이어베이스 크래시 리틱스 로그 작성 수행", data: [
                "\(data)"
            ])
            
            // [Firebase Set Crash Log]
            Crashlytics.crashlytics().log("\(data)")
        }
    }
    
    
    
    
    
    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : crashlyticsSetUser : 파이어베이스 크래시 리틱스 로그에서 특정 사용자 식별 수행 값 저장
    // -----------------------------------------------------------------------------------------
    /*
     *
     * -----------------------------------------------------------------------------------------
     * TODO [설명] : 파이어베이스 크래시 리틱스 로그에서 특정 사용자 식별 수행 값 저장 메소드
     *
     * 1) 파이어베이스 콘솔에서 앱 사용 중 에러가 발생해 Kill 된 경우 해당 로그를 추적해서 어디에서 다운이 되었는지 확인 수행
     * 2) 파이어베이스 콘솔에서 지정한 값으로 사용자 식별 수행
     * -----------------------------------------------------------------------------------------
     * TODO [Input] : 인풋 파라미터
     *
     * @param userId : 파이어베이스 크래시 리틱스 로그에서 특정 사용자를 식별하기 위한 값 (ex : twok1234)
     * -----------------------------------------------------------------------------------------
     * TODO [Return] : 리턴 데이터
     *
     * @return : null
     * -----------------------------------------------------------------------------------------
     * TODO [History] : 이력 정리 [create , update , delete]
     *
     * 1) KwonGiHwan : create : 2025-01-05 : 최초 생성 수행
     * -----------------------------------------------------------------------------------------
     *
     * */
    // -----------------------------------------------------------------------------------------
    // TODO [호출 방법 소스 코드]
    // -----------------------------------------------------------------------------------------
    /*
     
     C_FirebaseCrashlyticsLog().crashlyticsSetUser(userId: "twok1234")
     
    */
    // -----------------------------------------------------------------------------------------
    func crashlyticsSetUser(userId: String) {
        
        DispatchQueue.main.async {
            S_Log._F_(description: C_FirebaseCrashlyticsLog.ACTIVITY_NAME + " :: crashlyticsSetUser :: 파이어베이스 크래시 리틱스 로그 특정 사용자 식별 값 저장", data: [
                "\(userId)"
            ])
            
            // [Firebase Set Crash UserId]
            Crashlytics.crashlytics().setUserID("\(userId)")
        }
    }

    
} // [클래스 종료]
 
반응형
Comments