앱 충돌 수집기
AIBudsCrashReporter는 충돌 보고서를 로컬에 저장합니다. 호스트 앱은 다음 실행 때 보고서를 찾아 내부 진단 흐름에서 확인하고, 자체 백엔드로 업로드한 뒤 처리가 끝나면 삭제할 수 있습니다.
이 모듈은 사용자 동의, 업로드 방식, 보관 정책, 지원 담당자의 접근 권한을 정의하지 않습니다. 이러한 정책은 호스트 앱에서 결정해야 합니다.
앱 실행을 넘나드는 충돌 보고서 수명 주기
충돌이 발생한 실행에서 보고서를 수집하고, 앱이 다시 시작된 뒤 보고서를 찾아 제품 정책에 따라 처리합니다.
이른 시점에 설치하고 다음 실행에서 처리하기
기능 작업을 시작하기 전에 애플리케이션 수명 주기에서 CrashReporterSDK을 한 번 설치하세요. 기본 경로를 사용하면 보고서는 앱 Documents 디렉터리의 .aibuds/crash_logs에 저장됩니다. 앱에 명확한 저장 정책이 있다면 사용자 지정 루트 경로를 사용할 수 있습니다.
마지막 충돌 콜백은 이전 실행에서 충돌이 발생했을 때 가장 최신 보고서 경로를 전달합니다. 보고서 목록 콜백은 로컬 목록이 변경되었음을 알립니다. 어느 콜백도 보고서를 업로드하거나 삭제하지 않습니다.
- Swift
- Objective-C
CrashReporterSDK.install(
withLastCrashReportCallback: { path in
guard let path else { return }
// Enqueue consent-aware inspection or upload outside this callback.
},
reportListUpdateCallback: {
// Refresh internal diagnostic state.
}
)[AIBudsCrashReporterSDK
installWithLastCrashReportCallback:^(NSString *_Nullable path) {
if (path == nil) {
return;
}
// Enqueue consent-aware inspection or upload outside this callback.
}
reportListUpdateCallback:^{
// Refresh internal diagnostic state.
}];All-in-One에 모듈이 포함되어 있어도 installCrashReporter를 명시적으로 호출해야 합니다.
AI를 활용해 구현
AI로 이 워크플로 구현
공식 “AIBuds 충돌 보고서 관리” 스킬을 사용해 앱에 맞게 구현하세요.
https://docs-aibuds.github.io/ko/skills/manage-aibuds-crash-reports을 읽고 지침을 따르세요. 이 스킬로 “AIBuds 충돌 보고서 관리”을 이 iOS 프로젝트에 구현하고 검증하세요.보고서 관리 주체
allCrashReportPaths()는 보고서 경로를 최신순으로 반환합니다. 보고서를 비동기로 읽거나 업로드하고 작업 성공을 확인한 뒤, 해당 목록에서 얻은 경로에만 deleteCrashReport를 호출하세요.
임의의 파일 시스템 경로를 삭제 함수에 전달하지 마세요. 재시도는 여러 번 실행해도 안전하게 구현하고, 백엔드에서 수신을 확인하거나 보관 기간이 끝날 때까지 보고서를 유지합니다.
사용자 정보
setUserInfo(_:forKey:)에는 String, Int, UInt, Double, Bool, Date 값을 지정할 수 있으며 키로 값을 제거할 수 있습니다. 충돌 보고서 안에 저장해도 안전하고 값의 종류가 제한적인 진단 정보만 추가하세요.
액세스 토큰, 대화 내용, 오디오, 이메일 주소, 전체 기기 식별자, 정밀 위치 또는 기타 개인정보는 추가하지 마세요. 세션이 끝나면 세션별 값을 제거하여 오래된 정보가 이후 충돌에 포함되지 않도록 합니다.
개인정보 보호와 운영
- 수집 및 업로드에 필요한 동의를 받습니다.
- 업로드를 암호화하고 지원 백엔드를 인증합니다.
- 로컬 및 서버 접근을 제한합니다.
- 보고서 최대 보관 기간과 디스크 사용량을 정의합니다.
- 신뢰할 수 있는 환경에서 일치하는 빌드 산출물로 심볼리케이션합니다.
- 충돌 보고서 전송 실패와 애플리케이션 시작을 분리합니다.
- 운영 환경 검증 과정에서 의도적으로 충돌을 일으키지 않습니다.
검증 점검 목록
- 앱 시작 초기에 한 번만 설치합니다.
- 이전 실행의 보고서는 시작에 중요한 경로 밖에서 처리합니다.
- 업로드 완료를 확인한 뒤 삭제합니다.
- 목록에서 얻은 보고서 경로만 삭제합니다.
- 사용자 정보에 비밀 값이나 민감한 내용을 넣지 않습니다.
- 세션별 메타데이터가 더 이상 유효하지 않으면 제거합니다.
- 보관, 동의, 심볼리케이션, 백엔드 접근 정책을 문서화합니다.
- 승인된 비운영 시나리오에서 릴리스 빌드의 충돌 수집을 테스트합니다.