메인 콘텐츠로 건너뛰기

CapacitorJS 및 Electron을 위한 앱 문제 해결 지침서

CapacitorJS 및 Electron 팀을 위한 앱 문제 해결 지침서. 버그를 재현하고 로그를 읽어, 네이티브层를 디버그하고 빠르게 핫픽스를 배포하세요.

CapacitorJS 및 Electron을 위한 앱 문제 해결 지침서

목요일 저녁, CapacitorJS 쇼핑 앱이 Android 14 사용자에게 비어 있는 대시보드를 표시하기 시작했습니다. iOS 고객은 정상적으로 브라우징했습니다. Electron 데스크톱 사용자는 아무런 문제를 보고하지 않았습니다. 호출 엔지니어는 WebView 회귀를 가정하고 Android Studio를 열어, 장치 간 렌더링 동작을 비교했습니다. 최종 원인은 렌더링 버그가 아니었습니다. 스테이징 API 키가 캐시 무효화가 실패하여 모바일 클라이언트에 도달하지 못했기 때문입니다.

이런 사고는 익숙한 이유입니다. 모바일 실패는 일반적으로 저장소의 경계를 존중하지 않습니다. 새로운 자바스크립트 변경이 무죄처럼 보일 수 있지만 배포, 구성 값, 권한 상태, 서비스 종속성 또는 네트워크 경로가 사용자 경험을 깨트릴 수 있습니다. 마이크로소프트의 사고 분석 결과 생산 중단 사고의 40%는 code 또는 구성 오류에서 발생했으며, 60%는 인프라, 배포 및 서비스 의존성에서 발생했다.생산 중단 사고를 해결하는 데 필요한 실용적인 교훈은 간단하다: 앱 문제 해결은 스택 추적에 시작하지 않고 전체 실패 도메인에서 시작해야 한다.. (Microsoft의 사고 분석)

이 플레이북은 CapacitorJS 및 Electron 릴리스를 배포한 후 사용하는 워크플로우를 따릅니다: 사용자가 실행한 것을 정확히establish, 프로덕션 테스트 메트릭을 검사하기 전에 재현을 시도하기 전에, code 외의 원인 확인, 그리고 증상과 일치하는 가장 좁은 층을 디버그합니다. 7 가지 움직임은 사고 범위 설정, 층별 로그, 웹 및 네이티브 디버깅, 네트워킹 및 상태 검사, CI 경계석, 라이브 업데이트 복구 및 사고 후 검토가 예방 작업 assign.

목차

다시 시작된 밤

목요일 저녁, 안드로이드 사용자는 비어 있는 대시보드를 보고했으며, 전자 데스크톱 사용자는 정상적으로 작동했습니다. 첫 번째 가정은 안드로이드 14 또는 WebView regression 였습니다. 그 클루는 검색을 좁혔지만, 실패를 식별하지 못했습니다. 영향을 받은 사용자도 릴리스 채널, 캐시된 구성 경로, API 환경, 및 특정 대시보드 요청 시퀀스를 공유했습니다.

온콜 엔지니어는 WebView 버전을 비교하기 시작했습니다. 결과는 가능성이 있었지만, 어디에도 가지지 않았습니다. 비어 있는 대시보드는 렌더링 예외, 빈 API 응답, 거부된 요청, 유효하지 않은 토큰, 기능 플래그, 또는 세션 복원 방해하는 저장소 읽기에서 발생할 수 있습니다. code을 변경하기 전에, 영향을 받은 사용자가 받은 바이너리, 웹 번들, 구성, 및 백엔드 경로를establish하세요.

안드로이드 사용자에 대한 사고 세부 정보를 담은 대시보드가 사라진 밤의 제목을 가진 트러블 슈팅 체크리스트.

정확한 실패 표면을establish하세요.

생산 환경의 전송에서 시작하세요. 개발자 노트북이 아닌. Google의 안드로이드 충돌 및 ANR 지침은 이벤트를 device, operating system, 및 시간 창으로 좁히는 것을 권장합니다.실패 위치가 불분명한 경우, 로그캣을 사용하여 재현할 때.Google의 안드로이드 비트랄 트러블 슈팅 지침.)

다음 field를 하나의 영향을 받은 세션에서 캡처하세요:

  • 빌드 식별자: 네이티브 앱 버전, 빌드 ID, 웹 번들 해시, 및 릴리스 타임스탬프를 기록하세요.
  • Distribution channel: 사용자가 카나리, 베타, 스테이징, 또는 안정 버전의 콘텐츠를 받았는지 확인합니다.
  • 실행 환경: 안드로이드 또는 iOS 버전, 기기 모델, 네트워크 유형, 권한 상태, 앱이 백그라운드에서 재개되었는지 여부를 기록합니다.
  • 최근 성공적인 액션: 정확한 탭 시퀀스, 요청, 응답 상태, 그리고 표시된 결과를 보존합니다.
  • 설정 스냅샷: Compare the API base URL, feature flags, authentication settings, and plugin configuration with a known-good device.

Capacitor keeps the native version separate from the web content running inside the WebView. Two users can share a store-installed binary while receiving different JavaScript bundles. They can also share a web bundle while using different native plugins. Electron requires the same check across the release manifest, main-process version, renderer bundle, and update channel. Renderer package metadata alone does not establish what the user executed.

재현하기 변수 제거

식별자들을 수집한 후, 사건을 카나리 전용, 스테이징, 또는 완전히 배포된 것으로 분류합니다. __CAPGO_KEEP_0__Canary 배포에서 오류가 발생하면 특정 Bundle, Flag, 또는 Channel assignment이 문제의 원인일 수 있습니다. Staged 배포 오류는 사용자 또는 장치 선택 논리와 관련이 있습니다. 전체 배포 오류는 공유 구성, 백엔드 동작 및 네이티브 호환성의 우선순위를 높입니다.

영향을 받은 장치와 알려진 좋은 장치 간의 차이를 확인하세요. 네이티브 플러그인 버전, 웹 해시, 채널, API 환경, 인증 상태 및 권한 부여를 확인하세요. 사용자의 마지막 동작 시퀀스를 로컬에서 재생하기 전에 에뮬레이터를 찾기 전에. 하나의 플래그가 오류를 제어한다면 다른 변수를 안정적으로 유지하고 그 플래그의 동작을 이분법적으로 확인하세요.

실용적인 규칙: 재현을 '같은 버그'라고 부르지 마세요. 빌드 ID, 채널, 웹 번들, 운영 체제 및 구성이 일치해야 합니다.

Android 대시보드 사고는 구성 수정을 활성화했습니다. 팀은 스냅샷을 비교하고 네이티브 바이너리가 유효한지 확인하고 WebView 및 대시보드 code가 변경되지 않았는지 확인했습니다. 이전 캐시 무효화가 모든 모바일 클라이언트에 도달하지 않았기 때문에 프로덕션 클라이언트는 스테이징 크레디티널 환경을 요청했습니다. 따라서 복구 작업은 구성 수정, 적절한 캐시 무효화 헤더 설정 및 영향을 받은 지역 및 클라이언트 경로에서 CDN 정리 작업을 확인했습니다.

그 시퀀스는 성공적인 정리 명령이 모든 사용자가 수정된 값을 가져올 수 있는지 증명하지 않기 때문에 중요합니다. CDN 응답, 캐시 나이, 패키지 또는 구성 해시, 그리고 새 클라이언트 세션을 확인하기 전에 복구를 선언하기 전에 확인하십시오. 원본 빌드가 실패한 원인에 영향을 미치지 않고 롤아웃 시간을 추가했을 것입니다.

미래의 사고에 대해 동일한 discipline를 사용하십시오: 사용자의 artifact를 식별하고 실패하는 표면을 찾고 환경적 차이를 제거한 다음 code를 디버그하십시오.. 모바일 팀의 작성된 사고 대응 지침

사용자 체크를 포함하여 on-call runbook에 beside에 유지해야 하는 체크를 포함하여

A CapacitorJS or Electron application produces evidence at several layers, and each layer answers a different question. The WebView can show JavaScript exceptions and failed requests, but it won’t explain every plugin failure. Native logs expose bridge and lifecycle behavior, while the operating system records memory pressure, permission denials, and process termination that application code may never observe.

웹뷰, 네이티브, 및 OS에서 로그를 읽는 방법

CapacitorJS 또는 Electron 애플리케이션은 여러 층에서 증거를 생성하고 각 층은 다른 질문에 답합니다. 웹뷰는 자바스크립트 예외 및 실패한 요청을 보여주지만 모든 플러그인 실패를 설명하지는 않습니다. 네이티브 로그는 브리지 및 라이프 사이클 동작을 노출하며 운영 체제는 메모리 압박, 권한 거부, 및 프로세스 종료를 기록합니다. 애플리케이션 __CAPGO_KEEP_0__는 이러한 사항을 관찰하지 못할 수 있습니다.

로깅을 위한 3개의 층을 나타내는 다이어그램 각 증상에 해당하는 증거를 찾으십시오: WebView layerconsole 오류, 미처리된 프로미스 거부, 네비게이션 이벤트, 요청 URL, 응답 상태, 요청 시간을 수집합니다. silent plugin 거부는 특히 위험합니다. UI는 이미 카메라, 파일 시스템, 보안 저장소 또는 알림 연산이 실패한 경우에도 렌더링을 계속할 수 있습니다.

The 자연어 layer native layer os_log contains Android logcat 출력, iOS

기록, 플러그인 브리지 예외, 활동 또는 뷰 컨트롤러 라이프 사이클 이벤트, 그리고 네이티브 크래시 트레이스. Electron은 메인 프로세스 로그 스트림, 자동 업데이트 이벤트, 창 생성 실패, 및 IPC 메시지를 추가합니다. 렌더러 오류는 반드시 메인 프로세스에 나타나지 않으며, 메인 프로세스 크래시도 렌더러 콘솔 출력에 나타나지 않습니다. The OS layer

외부 애플리케이션의 제어 밖의 이벤트를 설명합니다. 메모리 압박, 배경 종료, 배터리 제한, 거부된 권한, 프로세스 종료, 및 시스템 수준 크래시 보고서를 찾으십시오. 이 layer는 명백한 "랜덤 크래시"가 유용한 자바 스크립트 스택을 갖지 않는 경우가 많습니다.

Correlate before you filter

모든层에서 동일한 context field를 저장하십시오: 앱 버전, 웹 번들 해시, 채널, 장치, OS, 세션, 그리고 기능 플래그 상태. 중앙 집중화된 수집은 사용자의 증거와 재현 시도 비교가 가능하도록 합니다. 대신 가정으로 대체하는 것을 피합니다. 실제 모바일 디버깅을 위한 로그 분석 도구 디버깅을 위한 로그 분석 도구는 엔지니어에게 각 장치에서 스크린샷을 수집하도록 강요하지 않고도 그 필드들을 검색하는 것을 도와줍니다.

웹 레이어와 네이티브 레이어 디버깅

증상이 있는 레이어를 디버깅하십시오. 아직 네이티브 라이프 사이클 이벤트에 반응하는 FREEZEN 화면은 WebView에서 시작됩니다. 프로세스 종료, 플러그인 예외, 또는 시작 실패는 네이티브 도구 또는 Electron의 메인 프로세스에 속합니다. 레이어를 이동하는 규칙이 없으면 활동이 생기지만 원인에 대한 좁은 범위가 생기지 않습니다.

WebView부터 시작하십시오

Android에서, Chrome에 디버깅 가능한 Capacitor 빌드를 연결하고 chrome://inspect콘솔, 네트워크 패널, 저장소, 그리고 성능 타임라인을 검사하십시오. iOS에서, Safari Web Inspector를 사용하여 연결된 장치 또는 시뮬레이터를 사용하십시오. Electron의 경우, 렌더러에 대한 DevTools 포트에 연결하거나 BrowserWindow.webContents.openDevTools() 수사 중에 호출하십시오.

생산 스택 추적은 소스에 대한 매핑이 되면 유용합니다. 각 웹 번들을위한 소스맵을 업로드하고 유지하고 정확한 번들 해시와 매칭되는 symbolication artifact를 확인하세요. 중요한 작업에 대한 제어된 콘솔 인터셉터를 추가하세요. 그러나 로그인 자격증명, 토큰 또는 개인 데이터를 피하세요. 작업 이름, 요청 ID, 응답 클래스 및 상태 전환을 캡처하세요.

웹 및 네이티브层의 디버깅 프로세스를 식별하는 애플리케이션의 원인에 대한 다이어그램입니다.

네이티브 도구로 이동하세요. 증거가 네이티브 쪽을指示하면

Android Studio Logcat을 애플리케이션 패키지로 필터링하고 가장 작은 가능 동작 시퀀스와 함께 재현하세요. npx cap run android --livereload WebView 변경의 반복 루프를 단축하지만, 패키지된 네이티브 아티팩트를 검증하지 않습니다. iOS에서 Xcode에서 실행하고 디바이스 로그를 위해 Devices 창을 사용하세요. Instruments의 Time Profiler는 지속적인 CPU 작업에 도움이 되며, Allocations는 메모리 성장에 도움이 됩니다.

Electron에는 두 가지 디버깅 대상이 있습니다. 렌더러 DevTools를 사용하여 DOM, JavaScript 및 네트워크 동작을 확인하세요. 사용자 인터페이스 로직을 확인하려면 --inspect 또는 --inspect-brk Capacitor live-update alternatives 비교 페이지 (parent key `alternatives_cta_questions`).

Appflow 비교 / 이주 마케팅 복사 (parent key `appflow_cta_questions`).

Capawesome 비교 페이지 (parent key `capwesome_cta_questions`). Capacitor’s WebView and native bridge model. The bridge is a boundary, not a single debugging surface. Treat it that way, and each log line has a better chance of answering the question you have.

네트워킹, 저장소 및 권한

팀은 네트워크 오류가 기술적이고熟悉한 것처럼 보이기 때문에 API를 먼저 확인하는 경향이 있습니다. 그러나 stale 상태, 변경된 권한 선언 또는 플랫폼 업그레이드가 샌드박스 동작을 변경한 경우를 놓치게 됩니다. 가장 빠른 확인은 실패 도메인에 따라 달라집니다.

실패 도메인 일반 증상 패턴 가장 빠른 확인
네트워킹 빈 데이터, 로그인 루프, 타임아웃, 업로드 실패 또는 하나의 네트워크에서 작동하는 요청이 다른 네트워크에서 작동하지 않는 경우 Run curl 같은 네트워크에서 실행하고 실패한 WebView 요청을 검사하고 CORS 프리 플라이트, 인증서 핀닝, 캡티브 게이트웨이 및 프록시 동작을 확인하십시오.
저장소 업데이트, 재시작 또는 운영 체제 변경 후 이전에 작동하던 기능이 실패하는 경우 저장소 추정치를 검사하고 IndexedDB 할당량 오류를 확인하고 암호화 키를 비교하고 Electron의 userData 경로를 확인하고 깨끗한 샌드박스를 테스트하십시오
권한 카메라, 파일, 알림, 위치, 또는 백그라운드 동작이 명확한 애플리케이션 예외 없이 실패하는 경우 iOS 사용 설명서를 확인하고 Android ACCESS_* 선언, Electron의 권한 처리기, 그리고 냉각 시작 권한 타이밍

저장소 문제에 대해 storage.estimate() 할당량 압박을 드러낼 수 있지만 모든 데이터베이스 문제를 진단하지는 않습니다. 수동으로 청소된 애플리케이션 샌드박스를 테스트한 후 기존 프로필과 동작을 비교하십시오. Capacitor userData Preferences 암호화 키 회전은 이전에 유효한 값이 읽을 수 없게 만들 수 있으며 SQLite 쓰기 앞서 로깅은 갑작스러운 종료 후에 손상된 상태를 남길 수 있습니다. Electron 애플리케이션은 또한 운영 체제 업그레이드가 해결된 경로를 변경할 때 데이터를 잃어버릴 수 있습니다.

권한도 같은 관심을 받을 가치가 있습니다. iOS 사용 설명서는 요청 중인 기능과 일치해야 합니다. Android 권한 동작은 SDK 변경 후에 드리프트할 수 있으며 알림 프롬프트는 냉각 시작 초기화와 경쟁할 수 있습니다. Electron의 권한 처리기는 렌더러가 유용한 설명을 받기 전에 요청을 거부할 수 있습니다.

사용자가 "어제는 작동했다"고 말하는 경우 저장소와 권한을 검사하고 네트워크가 변경된 것으로 가정하지 마십시오.

자동화된 테스트와 CI를 조기 경보 시스템으로 사용하십시오

CI는 사용자가 실행할 artifact를 테스트할 때 regressions를 가장 저렴하게 잡을 수 있습니다. 개발 서버에 대한 녹색 테스트 스위트는 signed Android package, iOS archive, 또는 Electron installer가 시작, bundle을 로드하고 실제 인증된 작업을 완료할 수 있는지 증명하지 않습니다.

공유 논리와 셸을 테스트하세요

사용 Vitest 공유 웹 논리와 Jest for Electron main-process behavior. For Capacitor plugins, test the JavaScript contract and the native implementation separately, then add integration coverage for permission denial, unavailable hardware, malformed responses, and lifecycle interruption.

For __CAPGO_KEEP_0__ 플러그인, JavaScript 계약과 native implementation을 별도로 테스트하고, 권한 거부, unavailable hardware, malformed responses, lifecycle interruption에 대한 통합 커버리지 추가하세요.

Playwright는 빌드 웹 번들을 실행할 수 있습니다. Electron의 경우, packaged binary에 대한 Playwright Electron 또는 등価 셸 테스트를 사용하세요. 로컬 개발 프로세스가 제공하는 렌더러만 테스트하는 것이 아니라. 패키지 테스트는 미스팅 asset, 잘못된 경로, 서명 오류, 브라우저 테스트가 숨기는 시작 가정 등이 있습니다.

디바이스 커버지는 실제 설치 기반을 반영해야 합니다. BrowserStack 또는 Sauce Labs는 의도적으로 선택한 디바이스 프로파일, 운영 체제, 권한 상태, 네트워크 조건을 사용하여 디바이스 커버리지를 구현하세요. 목표는 최대 행렬 크기입니다. 대표적인 실패 커버리지입니다.

실패가 병합 차단되도록 하세요

  • explicit한 검사를 추가하세요: 예기치 못한 번들 크기 델타와 소스 맵 누락을 거부합니다.
  • 자연스러운 정렬: 플러그인 버전이동 및 불일치하는 설정을 감지합니다. minSdkVersion 아티팩트完整성:
  • 서명, 패키지 식별, 임베디드 자산 및 릴리스 매니페스트를 확인합니다. 시작 동작:
  • 패키지된 앱을 부팅하고 인증된 엔드포인트 요청을 완료합니다. 업데이트 동작:
  • 이전 버전의 번들을 설치하고 후보 업데이트 적용, 재시작, 롤백 동작 확인을 수행합니다. 결과를 하나의 __CAPGO_KEEP_0__ 상태 체크를 통해 공개합니다. 단, 실패 신호가 빨간색으로 표시되도록 하세요. 단위 테스트를 통과한 빌드지만 서명된 아티팩트 검증에 실패한 빌드는 "주로 녹색"으로 간주하지 마세요.

Publish every result through one GitHub status check so a red signal blocks the merge. A build that passes unit tests but fails signed-artifact verification should be treated as failed, not “mostly green.”

The Capacitor 릴리스에 대한 Capacitor 통합 설정 CI를 반복 가능한 pipeline에 연결하는 데 유용합니다. CI는 프로덕션 모니터링의 대체품이 아니지만, 스테이징에 도달하는 결함의 수를 줄여서 인시던트 중에 온콜 엔지니어에게 알려지지 않은 항목이 적어집니다.

실시간 업데이트: 비상 복구 채널

프로덕션 버그가 항상 새로운 네이티브 빌드를 요구하는 것은 아닙니다. JavaScript, CSS, 복사본, 구성, 또는 다른 웹 자산에 문제가 있다면, 실시간 업데이트에서는 사용자 경험을 복원할 수 있습니다. 팀이 적절한 릴리스를 준비하는 동안. 실시간 업데이트 배포는 운영 Recovery 채널입니다. 단순히 외관 변경을 위한 편리함이 아닙니다.안전성 요구 사항은 제어입니다. 카나리, 베타, 그리고 안정적인 사용자들을 위한 별도의 이름이 지정된 채널을 유지하고, 네이티브 앱 ID와 호환 가능한 런타임 제약 조건을 명확히 하며, 각 사용자에게 받은 배ंडल을 기록하세요. 실시간 업데이트에서는 네이티브 권한을 추가하거나 네이티브 플러그인을 교체하거나 Electron 메인 프로세스를 변경하거나, 업데이터가 초기화할 수 있는 이전에 발생한 실패를 고칠 수 없습니다. 여전히 스토어 또는 설치 프로그램 릴리스가 필요합니다.

애플리케이션 프로덕션 버그에 대한 실시간 업데이트 비상 복구 프로세스의 흐름 차트

보호된 롤아웃을 사용하십시오.

비상 흐름은 다음과 같이 보이길 바랍니다.

범위 확인:

  1. 영향을 받는 네이티브 버전, 채널, 배ंडल 해시, 그리고 실패 신호를 식별하십시오. __CAPGO_KEEP_0__
  2. __CAPGO_KEEP_0__ 실행 중인 패치 준비:
  3. 실행 중인 패치에서 실패하는 경로를 복원하기 위해 필요한 웹 동작만 변경하십시오. 대상자 선정:
  4. 실패하는 설치를 제외한 제어된 채널로 패치를 전송하십시오. 트래픽 모니터링:
  5. 실패하는 계층에서 발생하는 충돌, 로드, 요청, 업데이트 실패 신호를 확인하십시오. 업데이트 또는 롤백:

신호가 건강한 경우에만 확장하십시오. 패치가 새로운 실패를 유발하는 경우 즉시 롤백하십시오.

Capgo provides signed web-bundle delivery, targeted channels, per-device logs, adoption and failure metrics, version history, and automatic rollback protection for CapacitorJS and Electron applications. The practical decision rule is direct: __CAPGO_KEEP_0__은 CapacitorJS 및 Electron 애플리케이션에 대한 서명된 웹-배ंडल 전송, 대상 채널, 장치별 로그, 채택 및 실패 메트릭, 버전 기록 및 자동 롤백 보호를 제공합니다. 실용적인 결정 규칙은 다음과 같습니다:웹 배ंडल에 제한된 수정이 있는 경우에만 라이브 업데이트 사용하십시오. 런타임, 플러그인, 권한, 패키지 또는 메인 프로세스가 관련된 경우에는 네이티브 핫픽스를 예약하십시오. Capacitor live-update flow 두 경로 사이의 경계를 설명합니다.

다음과 같은 사고를 예방하는 사후 분석

사후 분석은 시스템을 변경할 때만 의미가 있습니다. 로그, 배포 컨텍스트, 운영자 결정이 남아 있는 동안 기록하세요. 기록은 사실적이고 비난하지 말고, 다른 엔지니어가 전체 사고를 재구성하지 않고 누락된 경계를 식별할 수 있도록 충분히 구체적이어야 합니다.

5개의 구체적인 블록을 사용하세요.

시각화된 시간대 첫 번째 실패한 요청, 영향을 받은 릴리스, 경보 생성, 조사 단계, 완화, 복구를 기록하세요. Android 대시보드 사고의 경우, 시간대는 iOS가 유효한 응답을 받으면서도 구성 롤아웃 후 빈 뷰가 나타난 것을 보여줄 수 있습니다.

사용자에게 보이는 실패 모드. Describe what customers experienced, not what the code did. “Android users saw an empty dashboard after authentication” gives responders more direction than “API key mismatch.” The first description points toward the broken journey and the signals that should have detected it.

감지 단계. 팀이 늦게 배웠던 이유를 기록하세요. 앱이 성공적으로 렌더링되었을 때 크래시 모니터링이 녹색으로 유지되었을 수 있습니다. 그러나 인증된 요청 실패나 빈 대시보드 페이로드를 추적하지 않는 경보가 없었을 수 있습니다. 누락된 신호와 신호가 방출되어야 하는 곳을 기록하세요.

code가 아닌 기여 요인. 이러한 영역은 프로덕션 오류가 애플리케이션 code의 결함이 없이는 발생할 수 있으므로 초기 검사에 적합합니다.

예방적 경계. 이 문제를 잡아내는 데 사용할 테스트 또는 제어를 할당하십시오. 예를 들어, 배포 중에 프로덕션 자격증명을 유효성 검사하거나 대표적인 클라이언트에서 전달된 구성 확인하거나 패키지된 Electron 시작 테스트를 추가하십시오. 경계는 주인과 실패 조건이 필요하며 retrospection의 단순한 문장만으로는 충분하지 않습니다.

알림 경로는 동일한 검토에 속해야 합니다. 팀에 메일 알림이 도달하지 못하는 경우 Gmail에서 이메일이 스팸으로 이동하는 방법에 대한 실용적인 리소스를 사용하십시오. 알림 경로가 실패하는 경우 알림 경로를 확인하십시오. 성공적으로 메시지가 생성된다는 것은 운영자에게 알림이 도달했다는 증명이 아닙니다. 작업 assign하기 전에 incident를 닫지 마십시오.

각 블록에 대해 주인, 마감일, 검증 방법을 하나씩 지정하십시오. incident를 다시 검토하기 위해 24시간을 기다리십시오.

24시간 동안 engineers가 조사에서 가정에 대한 도전을 계속할 수 있도록 하십시오. item을 닫기 전에 새로운 테스트, 대시보드, 구성 확인 또는 롤아웃 규칙이 성공적으로 실행되었습니다. 이 마지막 체크리스트를 사용하십시오:native 빌드와 웹 번들을 정확하게 식별했습니까?

low_priority_response

  • urgent_team_response
  • Did we distinguish code, 설정, 배포, 인프라, 의존성 원인?
  • 사용자 눈에 띄는 오류를 telemetry로 보여주었는가?
  • 영향을 받은 채널과 알려진 좋은 채널을 테스트했는가?
  • 생산 전에 실패하는 가드레일을 추가했는가?
  • 라이브 업데이트 또는 네이티브 릴리스가 적절한지 문서화했는가?
  • 한 명의 소유주가 수정을 확인했는가?

사용자 불만이 리뷰가 단순히 충돌만 다루는 것만큼 더 커야하는 이유를 보여준다. 6,634 앱을 대상으로 한 감사에서결제 오류가 28.6% 장치 호환성 28.4%UI 및 UX摩擦 25.4%구독 문제 21.8%앱 오류 및 로그인 오류 17.2%앱이 충돌하는 동안 10.3%. (Bright 앱 데이터의 모바일 앱 불만 조사) 앱이 충돌하는 이유를 묻는 오류 해결 과정을 사용하는 것은 결제, 로그인, 또는 일반 제품 사용을 방해하는 오류를 놓치게 할 수 있습니다.

안정성 데이터는 동일한 운영 모델을 지원합니다. 벤치마크는 중간 앱이 99.95% 충돌이 없는 세션을 기록합니다. 최고 성능을 보이는 앱은 99.99% 를 기록합니다. 약한 앱은 99.77% 이하의 을 기록합니다. 또한 10,000 세션당 ANR 비율의 중간값을 OOM 세션당 1.12의 비율, 그리고 앱-잠김 비율 64에서 103까지의 10,000 세션당 품질 등급에 따라 달라집니다. (모바일 안정성 벤치마크) 높은 안정성도 의미 있는 실패를 남기고 있습니다. 팀은 실패한 요청, 빈 상태, 잠김, 업데이트 오류 및 사용자 대면 증상과 같은 다른 문제를 위해 테스트 데이터가 필요합니다.

2026년 보고서에 따르면 사용자는 기본적인 기능이 깨진 것에 대해 신규 기능에 대한 요청보다 보고서에 따르면 . (단일 충돌 후 2-3 번 충돌 후 반려한 사용자의 비율이 반 이상입니다.


사용 Capgo Capgo로 PR 제출

Capacitor 앱의 실시간 업데이트

웹层 버그가 활성화되면 Capgo을 통해修정을 배포하세요. 앱 스토어 승인 대기 없이 사용자가 배경에서 업데이트를 받으며 네이티브 변경은 일반적인 검토 경로를 유지합니다.

마틴의 인간 지원

시작하기

최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.