내용으로 건너뛰기

디버깅

클라우드 거부 code가 발생하여 구체적인 개선 단계가 필요하시면 일반 업데이트 문제.

code설명
InvalidIp유저가 구글 데이터 센터에 위치하고 업데이트 시간이 4시간 미만일 경우입니다. 구글 봇의 장치가 유저의 계정에 포함되지 않도록 하기 위함입니다.
계획 업그레이드가 필요합니다 (이전 업그레이드가 필요합니다)계획 한계를 초과하여, 장치가 업데이트를 받지 못할 경우입니다. 계획을 업그레이드하거나 다음 달까지 기다려야 합니다.
새로운 업데이트가 없습니다최신 버전이 설치되어 있습니다.
__CAPGO_KEEP_0__iOS 플랫폼을 사용하고 있지만 채널 설정에서 비활성화되어 있습니다.
__CAPGO_KEEP_0__Android 플랫폼을 사용하고 있지만 채널 설정에서 비활성화되어 있습니다.
자동 업데이트 기능이 비활성화되어 있습니다.__CAPGO_KEEP_0__
자동 업데이트 기능이 비활성화되어 있으며 Native 버전보다 높은 버전입니다.기기 버전은 (1.2.3)이며, 채널은 기기 버전보다 (1.2.2)을 보낼 수 있지만 채널 설정에서 비활성화되어 있습니다.
__CAPGO_KEEP_0__장치에는 개발자 빌드가 있지만 채널 설정에서 비활성화되어 있습니다.
__CAPGO_KEEP_0__장치는 에뮬레이터지만 채널 설정에서 비활성화되어 있습니다.
__CAPGO_KEEP_0__bundle 다운로드를 위한 유효한 서명 URL을 생성하는 데 실패했습니다. 이 문제는 bundle URL 생성이 실패하거나 http/https로 시작하지 않는 URL을 반환할 때 발생하며, 대체로 사용할 수 있는 매니페스트가 없을 때 발생합니다.
__CAPGO_KEEP_0__장치는 비공개 채널과 자체 연관을 시도했지만 채널 설정에서 장치 자체 연관을 허용하지 않았으며(이 경우 false) 채널이 공개되지 않았습니다.allow_device_self_set __CAPGO_KEEP_0__
채널 설정에서 버전 번호에 따라 자동 업데이트를 비활성화하도록 구성되어 있지만 bundle의 버전 번호 필드가 null로 설정되어 있기 때문에 업데이트를 받을 장치가 결정할 수 없습니다.disableEmulatordisable_auto_update: 'version_number'cannotGetBundle min_update_version cannotUpdateViaPrivateChannel
자동 업데이트를 비활성화하는 버전 번호 메타데이터입니다. 채널은 장치의 버전이 적어도장치의 현재 버전은 이阈값보다 낮습니다. min_update_version메이저 버전 번호 증가를 차단하는 채널 설정입니다. 예를 들어, 1.x.x에서 2.x.x로 업데이트를 차단합니다.
소스 채널소스 채널 disable_auto_update: 'major' 소스 채널
소스 채널소스 채널 disable_auto_update: 'minor' 소스 채널
소스 채널소스 채널 disable_auto_update: 'patch' 소스 채널
missingBundleThis bundle is assigned to this channel but has no downloadable content. This means the bundle has no external_url, 없습니다 r2_path, 내장 버전이 아니며, 다운로드할 수 있는 매니페스트 항목이 없습니다.
채널 또는 오버라이드 없음이 앱에는 기본 채널이 설정되어 있지 않으며, 장치에는 특정 채널을 오버라이드하는 설정이 없습니다. 업데이트를 위해 적어도 하나가 필요합니다.
제한된 속도장치에 대한 요청이 과도하여 제한되었습니다.
키 일치 오류__CAPGO_KEEP_0__의 암호화 공개 키가 __CAPGO_KEEP_1__으로 암호화된 패키지의 암호화 공개 키와 일치하지 않습니다. 이 문제는 다음 경우에 발생합니다: (1) __CAPGO_KEEP_0__의 공개 키가 __CAPGO_KEEP_1__의 공개 키와 다를 때 capacitor.config.json __CAPGO_KEEP_0__은 업로드할 때 사용하는 것과 다르거나 (2) __CAPGO_KEEP_0__ 암호화 키를 회전했지만 아직 모든 장치에 업데이트를 적용하지 않았습니다. 응답에는 두 가지 모두 포함되어 있습니다. deviceKeyId 그리고 bundleKeyId (first 4 characters of each public key)로 불일치 확인을 도와줍니다. 이 문제를 해결하려면 업로드하는 번들을 위한 키 pairs가 앱에 사용되는 키 pairs와 동일해야 합니다 (CLI은 개인 키를 사용하고 capacitor.config.json에는 공개 키가 포함되어 있습니다).

장치에서 보낸 메시지

장치에서 보낸 메시지
code설명
ping내부 테스트 액션으로 통계 시스템이 올바르게 작동하는지 확인합니다.
get새 버전 다운로드 정보가 장치로 전송되었습니다.
delete장치에서 1개의 번들이 삭제되었습니다.
set장치에 패키지가 설정되었습니다.
__CAPGO_KEEP_0__설정 실패
__CAPGO_KEEP_0__장치가 __CAPGO_KEEP_0__로 리셋되었습니다. builtin __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ 다운로드 - XX% (10 단위 증가)로 진행됩니다.__CAPGO_KEEP_0__
새로운 패키지가 다운로드 완료되었습니다.__CAPGO_KEEP_0__
업데이트 매니페스트 다운로드를 시작했습니다.__CAPGO_KEEP_0__
다운로드 매니페스트 완료디바이스가 업데이트 매니페스트 다운로드를 완료했습니다.
다운로드 zip 시작디바이스가 부트 스트랩 아카이브 다운로드를 시작했습니다.
다운로드 zip 완료디바이스가 부트 스트랩 아카이브 다운로드를 완료했습니다.
다운로드 매니페스트 파일 실패1개의 매니페스트 항목이 다운로드에 실패했습니다. 통계 payload는 version_name 형태 version:fileName 자산을 식별하기 위해
다운로드 매니페스트 체크섬 실패매니페스트 파일이 체크섬 검증에 실패했습니다.
다운로드 매니페스트 브로틀리 실패브로틀리 압축을 사용하여 매니페스트 파일이 실패했습니다.
다운로드 실패새로운 번들을 다운로드하는 데 실패했습니다.
업데이트 실패새로운 번들이 설치되었지만 호출에 실패했습니다. notifyAppReady.
체크섬 실패체크섬이 유효하지 않습니다. 여러 가지 이유로 발생할 수 있습니다: 1) 체크섬 타입 불일치: 최신 버전의 CLI 및 플러그인 (버전 5.10.0+, 6.25.0+ 또는 7+)은 SHA256 체크섬을 사용합니다. 그러나 이전 버전의 플러그인은 CRC32을 사용했습니다. 체크섬 실패를 보게 되면 체크섬이 CRC32(짧은 해시)인지 SHA256인지 확인하세요. 일반적으로 번들이 업로드된 CLI의 이전 버전을 사용한 경우입니다. Capgo 대시보드에서 번들의 버전을 확인하세요 - 버전 5.10.0/6.25.0/7 이후에 생성된 번들은 SHA256을 사용합니다. CRC32 체크섬을 보게 되면 CLI에서 로컬 플러그인 버전을 확인하여 최신 버전인지 확인하고 CLI을 업그레이드한 후 다시 번들을 업로드하세요. 2) 암호화 키 불일치 (플러그인 버전 8.3.0 또는 5/6/7.38.0 이하): 플러그인 버전이 이전 버전인 경우, 장치의 공개 키와 암호화된 번들의 키가 일치하지 않으면 암호화가 실패하고 체크섬 실패를 발생시킵니다. 암호화를 사용하고 체크섬 실패를 보게 되면 checksum_fail, 앱의 공개 키를 확인하세요 capacitor.config.json targetLanguage: Korean protectedTokens: ["Cloudflare", "Capacitor", "GitHub", "Capgo", "code", "API", "SDK", "CLI", "npm", "bun"] text: matches the private key used to upload the bundle. Upgrading to plugin version 8.3.0+ (or 5/6/7.38.0+) will give you a proper 번역된 텍스트: 업로드할 패키지를 위한 개인 키와 일치합니다. 플러그인 버전 8.3.0+ (또는 5/6/7.38.0+)로 업그레이드하면 올바른 keyMismatch 서버에서 오류가 발생하는 대신, 이 문제를 진단하기 더 쉽게 만듭니다.
windows_path_fail윈도우 경로를 포함하는 파일이 있는 압축파일이 있습니다.
canonical_path_실패파일 경로가 정규화되지 않았습니다.
directory_path_fail파일 압축 파일의 경로에 오류가 있습니다.
압축 해제 실패압축이 풀리지 않았습니다.
low_mem_fail기기 내의 낮은 메모리 때문에 다운로드가 실패했습니다.
앱이 백그라운드에 이동했습니다.애플리케이션은 배경 상태로 전환되었습니다.
앱이 전면으로 돌아옵니다.애플리케이션이 전면 상태로 진입했습니다.
해독 실패다운로드한 배포를 암호화 해제할 수 없습니다.
채널 가져오기기기에서 현재 채널이 조회되었습니다.
채널 설정__CAPGO_KEEP_0__ 장치에 대한 채널이 성공적으로 설정되었습니다.
Capgo를 제거합니다.애플리케이션이 삭제되거나 Capgo 데이터가 지워졌습니다.
blocked_by_server_urlServer.url이 capacitor 구성 파일에 있습니다. 이로 인해 Capacitor은远程 URL을 사용하고 로컬 파일을 무시합니다. 그러나 업데이터는 로컬 파일을 사용하도록 설계되어 있습니다. Server.url은 Capacitor 제작자들에 의해 프로덕션에서 나쁜 관행으로 간주되고, 많은 문제와 플러그인이 올바르게 작동하지 않도록 할 수 있습니다.

Bundle 상태

Bundle 상태
  • SUCCESS: 설치 패키지 완료
  • ERROR: 설치 또는 다운로드 실패
  • PENDING: 다운로드 완료, 릴리스待ち
  • DELETED: 패키지 삭제, 통계를 위해 표시
  • DOWNLOADING: 현재 패키지 다운로드 중

디바이스 로그 이해:

디바이스 로그 이해:

Debug command:

디버그 명령어:

Capgo 클라우드 사용자에게는 디버그 명령어가 있습니다.

터미널 창
npx @capgo/cli@latest app debug

__CAPGO_KEEP_0__ 앱에서 발생하는 모든 이벤트를 확인하고 업데이트가 안 되는 경우 해결 방법을 찾을 수 있습니다.

iOS

iOS

Xcode에서 로그를 찾기 위해

Android:

Android:

안드로이드 스튜디오에서 로그를 찾으세요

  • Failed to download from => 동일 다운로드 실패
  • notifyAppReady was not called, roll back current bundle => 동일 업데이트 실패

다운로드한 번들을 장치에서 찾으세요

다운로드한 번들을 찾는 방법

iOS에서 디버깅을 하려면 앱을 컴퓨터에 덤프해야 합니다. 이 방법으로 할 수 있습니다.

Xcode에는 iOS 기기에서 개발자에 의해 설치된 앱의 파일 시스템을 검사하는 내장 기능이 있습니다. Xcode의 Window 메뉴에서 Devices and Simulators 옵션을 보여주는 화면

이것을 달성하려면:

  • Mac에 기기를 연결하고 Xcode 메뉴바의 Window > Devices를 선택하세요.
  • 왼쪽 패널의 Devices 섹션 아래에 기기를 선택하세요.
  • 이것은 해당 기기에 개발자에 의해 설치된 앱의 목록을 보여줍니다.
  • 검색하고 싶은 앱을 선택하고 화면의 하단에 있는 3개의 점 아이콘을 선택하세요.
  • 현재 파일 시스템을 보려면 다운로드 스냅샷을 선택하세요.

Xcode Devices 패널에 앱 컨테이너 다운로드 옵션을 보여주는 화면

다운로드 컨테이너…를 선택하면 파일 시스템의 스냅샷을 다운로드하고 .xcappdata 파일로 내보내며, 이를 통해 브라우징할 수 있습니다.

다운로드한 xcappdata 파일에 Show Package Contents 컨텍스트 메뉴를 선택

오른쪽 클릭하여 이 파일을 선택하고 Show Package Contents를 선택하여 폴더를 열 수 있습니다.

App Data 폴더를 열고, 문서, 라이브러리, tmp와 같은 몇 개의 폴더를 볼 수 있습니다.

iOS 앱 컨테이너 폴더 구조에서 문서 및 라이브러리 폴더를 보여줍니다.

그런 다음 2개의 폴더에서 버전을 찾을 수 있습니다.

library/NoCloud/ionic_built_snapshots 앱 재시작 후 필요합니다.

documents/versions 핫 리로드

Android에서 디버깅을 하려면 Android Studio에서 장치에 접근해야 합니다.

  • View > Tool Windows > Device File Explorer를 클릭하거나 도구 창 바의 Device File Explorer 버튼을 클릭하여 Device File Explorer를 열 수 있습니다.
  • 장치 목록에서 장치를 선택하십시오.
  • 경로를 열기 data/data/APP_NAME/ 그곳에서 APP_NAME은 앱 ID입니다.

Android Studio 디바이스 파일 탐색기에서 앱 데이터 디렉토리를 보여주는

그 다음 versions 폴더를 찾으세요.

안드로이드에서는 모든 버전이 하나의 폴더에 저장되며, IOS에서는 두 개의 위치에 복사해야 합니다.

iOS 프로덕션 크래시 로그 이해하기