Step by Step

Firebase Crashlytics로 유저 에러 기록 본문

ios 앱 개발

Firebase Crashlytics로 유저 에러 기록

짤진이 2025. 8. 4. 21:34
반응형

Firebase Crashlytics에 사용자 식별자(UUID) 연결하기

최근 개발한 iOS 앱(Objective-C)에 Firebase Crashlytics를 연동하면서, 특정 사용자의 에러 로그만 따로 확인하고 싶은 팀장님께서 앱에 사용자마다 고유한 UUID를 부여하고, 이 UUID로 Crashlytics 로그를 조회하라는 숙제를 내주셨다

결론적으로, 이 기능은 Firebase Crashlytics에서 지원하고 일주일동안 연결을 시켜보았다


1. Crashlytics에 사용자 ID(UUID) 설정

사용자 식별자를 설정하려면, 앱이 시작될 때 Crashlytics API를 호출하여 사용자 정보를 전달해야 함

  1. 헤더 파일 임포트: 먼저 AppDelegate.m 파일에 Crashlytics 헤더를 임포트
  2.  
    #import <FirebaseCrashlytics/FirebaseCrashlytics.h>
    

     

  3. 사용자 ID 설정 코드 추가: application:didFinishLaunchingWithOptions: 메서드 안에 아래 코드를 추가하여 사용자의 고유한 UUID를 설정 UUID는 앱 설치 시점에 생성하여 NSUserDefaults 등에 저장하고, 앱 실행 시마다 저장된 UUID를 불러와서 사용하는 것이 좋습니다. 이를 통해 앱이 재시작되더라도 동일한 사용자로 인식할 수 있다
  4.  
    // 앱이 시작될 때 호출되는 메서드 (AppDelegate.m)
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // ... 다른 초기화 코드 ...
    
        // 사용자 식별자(UUID) 생성 또는 불러오기
        NSString *userUUID = [[NSUUID UUID] UUIDString];
    
        // Crashlytics에 사용자 ID를 설정
        [[FIRCrashlytics crashlytics] setUserID:userUUID];
    
        // ... 다른 초기화 코드 ...
    
        return YES;
    }
    

2. Firebase 대시보드에서 UUID로 에러 로그 조회

위 코드로 사용자 UUID를 설정하면, Firebase Console의 Crashlytics 대시보드에서 해당 UUID를 활용하여 충돌 보고서를 필터링이 가능하다

  1. Firebase Console에 접속하여 프로젝트를 선택
  2. 왼쪽 메뉴에서 Crashlytics를 클릭
  3. 충돌 보고서 목록 상단에 있는 필터 기능을 사용
  4. User 필터에 설정한 userUUID 값을 입력하면, 해당 사용자의 충돌 보고서만 조회

3. 추가 팁: 로그 및 사용자 정의 키 활용

사용자 식별자 외에 디버깅에 도움이 되는 다른 정보들도 Crashlytics에 기록할 수 있다

  • 행동 로그 기록: 사용자의 특정 행동을 기록하여 충돌 직전 상황을 파악
  • Objective-C
     
    [[FIRCrashlytics crashlytics] log:@"'결제하기' 버튼 탭"];
    
  • 사용자 정의 키-값 쌍 기록: 앱의 특정 상태(예: 로그인 여부, A/B 테스트 그룹)를 기록
  • Objective-C
     
    [[FIRCrashlytics crashlytics] setCustomValue:@(YES) forKey:@"isLoggedIn"];
    [[FIRCrashlytics crashlytics] setCustomValue:@"premium" forKey:@"userPlan"];
    

 

반응형