목록 보기
iOS App Extension의 안정성 확보하기
프론트엔드

iOS App Extension의 안정성 확보하기

크림
크림
2025년 4월 28일

두줄요약

App Extension은 별도 프로세스라 크래시와 실패를 놓치기 쉬워 별도 모니터링이 필요했습니다. 공유 컨테이너와 메인 앱 수집 구조로 경량 안정성 시스템을 구축했습니다.

문제 상황

  • App Extension이 메인 앱과 분리 프로세스로 동작해 크래시와 기능 실패를 놓치기 쉬운 구조
  • 푸시 알림, 위젯 등 사용자 실행이 적은 확장 영역은 테스트와 모니터링이 까다로운 사각지대
  • Crashlytics, Sentry 같은 기존 도구도 Extension 환경에서는 수집 분리와 오버헤드 한계 존재

원인 분석

  • 메인 앱 중심 개발로 Extension 예외 상황이 모니터링 우선순위에서 밀리는 구조
  • Extension은 다음 실행 시점을 예측하기 어려워 일반적인 크래시 리포팅 흐름과 맞지 않음
  • 메모리, CPU, 실행 시간 제약이 커 무거운 SDK 추가 자체가 안정성 부담

해결 방법

  • Extension에서 예외, 시그널, stderr, 정상 종료 플래그를 직접 수집하는 경량 모니터링 시스템 구축
  • 수집 데이터는 App Group 공유 컨테이너에 저장하고, 네트워크 전송은 메인 앱의 ErrorReporter가 담당
  • 실행 횟수와 성공 횟수 차이, 비정상 종료 플래그로 크래시와 워치독 종료를 간접 추정

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...