Skip to content

Capgo Builder의 네이티브 + OTA 채널 워크플로우

일반적인 Capgo 설정은 개발 생산 컨텍스트: Live updates 제품 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 메시지 키 `live_update_dynamic_label_production` (Live Update Dynamic Label Production). 채널. CI는 OTA 번들을 업로드하고 dev, 그리고 채널을 업그레이드합니다. production 준비가 되면. 팀들은 종종 채널의 현재 네이티브 패키지와 호환되지 않는 번들을 필요로 할 때 --fail-on-incompatible so CI cannot ship a live update that needs new native code by accident.

이 페이지는 다음 질문에 대한 답변입니다. 채널의 현재 네이티브 패키지와 호환되지 않는 번들을 필요로 할 때 실수로 실시간 업데이트를 배포하지 않도록 하려면

네이티브 패키지의 호환성을 비교하는 Capgo에 대한 배경 지식이 필요합니다. Capgo에 대한 자세한 내용은 네이티브 호환성을 참조하세요. OTA vs Capgo 빌드 자동으로 선택하는 CI branch의 전체 예는 자동 OTA 또는 네이티브.

권장 채널 레이아웃 섹션

이 안내서는 dev 그리고 production 채널이 이미 존재한다고 가정합니다. 필요 시 먼저 만들기:

터미널 창
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
채널누가 받는가일반적인 업로드
dev내부 / QA 빌드JS (및 의도적인 네이티브 베이스 라인) 의 각 CI 푸시
production스토어 사용자릴리즈 준비가 된 경우에만 업로드

--fail-on-incompatible 두 채널 모두에서 좋은 기본 설정입니다. 일상 OTA 업로드. 업로드 중인 채널에 현재 활성화된 배포본의 네이티브 패키지를 업로드 중인 배포본의 네이티브 패키지와 비교합니다. 이 두 패키지가 다르면 업로드는 0이 아닌 값을 반환하고 배포되지 않습니다.일상 OTA (플래그 유지)

터미널 창

클립보드에 복사
npx @capgo/cli@latest bundle upload com.example.app \
--channel production \
--fail-on-incompatible \
--auto-min-update-version

--fail-on-incompatible 자연 드리프트를 방지하는 블록입니다. --auto-min-update-version 채널이 업로드할 때마다 이 옵션을 사용해야 합니다. metadata 채널이 업로드할 때마다 이 옵션을 사용해야 합니다. 채널이 아직 설정되지 않은 경우, 이 옵션을 생략할 수 있습니다. metadata 채널이 아직 설정되지 않은 경우, 이 옵션을 생략할 수 있습니다. --auto-min-update-version 업로드 전 CI 게이트 옵션입니다.

터미널 창

클립보드 복사
npx @capgo/cli@latest bundle releaseType com.example.app --channel production
# → OTA safe to upload with --fail-on-incompatible
# → native stop; ship a native binary first (see below)

자발적 네이티브 버킷 (플래그를 한 번만 사용하세요)

당신은

당신은 당신은 새로운 네이티브 code이 필요하다는 code 업로드 --fail-on-incompatible그 플래그가 존재하는 이유는 정확히 그 경우를 막기 위해서입니다. 플러그인, Capacitor 버전 또는 다른 네이티브 의존성이 의도적으로 변경되었을 때:

  1. 새로운 __CAPGO_KEEP_0__ 버전을 배포하세요. 네이티브 바이너리 (애플 스토어 / 플레이 스토어, 또는 __CAPGO_KEEP_0__ 빌드) __CAPGO_KEEP_0__ 빌드 새로운 JS Capgo 업로드).
  2. 업로드하지 마세요. 업로드하세요. --fail-on-incompatible.
  3. 채널을 __CAPGO_KEEP_0__ 전략으로 설정하여 기존 바이너리가 있는 기기들이 새로운 __CAPGO_KEEP_0__을 받을 때까지 새로운 __CAPGO_KEEP_0__을 설치할 때까지 새로운 __CAPGO_KEEP_0__을 받지 않도록 합니다. --auto-min-update-version 그 이후의 기준 업로드 후에 metadata __CAPGO_KEEP_0__
  4. __CAPGO_KEEP_0__ --fail-on-incompatible CI (정상 OTA)를 다시 시작하고 (그리고 유지) --auto-min-update-version 채널이 유지되는 동안 metadata).
  1. 한 번에 채널당: 메타데이터 게이트를 활성화

    터미널 창
    npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata

    위의 단계를 반복하여 dev 만약 그 채널이도 의도적으로 네이티브 베이스 라인도 받는다면 --auto-min-update-version 또는 --min-update-version.

  2. 이러한 Switch 후, 채널에 업로드하는 모든 업로드에는

    또는

  3. 터미널 창 --fail-on-incompatible)

    배포된 네이티브 바이너리를 다시 시작하여
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --auto-min-update-version

    이 채널에 새로운 네이티브 패키지를 기록합니다. 나중에 bundle releaseType / --fail-on-incompatible 체크를 사용합니다.

  4. 보호된 OTA 업로드를 재개합니다

    다음 JS-만 업데이트는 다시 두 개의 플래그를 사용합니다:

    터미널 창
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --fail-on-incompatible \
    --auto-min-update-version

FAQ

FAQ

FAQ --fail-on-incompatible FAQ

FAQ

FAQ --auto-min-update-version FAQ

FAQ

FAQ

FAQ

업로드를 dev channel에 먼저하고 production channel에 나중에 업로드해야 하나요? dev 첫째, 둘째 production?

제목 "업로드를 dev channel에 먼저하고 production channel에 나중에 업로드해야 하나요?"

네, 그게 당신의 프로세스와 일치하면 됩니다. 같은 규칙을 적용하여 채널당: 호환성 검사 대상은 대상 채널에 현재 활성화된 내용입니다. 새로운 네이티브 패키지를 기록하기 위해 production 업로드를 진행하기 전에 dev 만족스럽게 보이면, native-baseline 업로드를 사용하여 --fail-on-incompatible) 각 채널에서 새로운 네이티브 패키지를 기록해야 합니다.

새로운 네이티브 배ंडल을 업로드할 때 플래그가 여전히 켜져 있는 경우 어떻게 해야 하나요?

제목 "새로운 네이티브 배ंडल을 업로드할 때 플래그가 여전히 켜져 있는 경우 어떻게 해야 하나요?"

CI가 실패하고 Capgo 업로드가 배포되지 않습니다. 그게 예상되는 결과입니다. 변경이 의도치 않게 이루어졌을 경우 (네이티브 패키지를 수정하고 OTA로 다시 시도하세요), 또는 의도적으로 이루어졌을 경우 (위의 네이티브 경로를 사용하세요)

어떤 플래그가 어떤 작업에 붙을까?

제목: 어떤 플래그가 어떤 작업에 붙을까?
경로언제플래그 업로드
OTAJS만; 네이티브 패키지는 채널에 맞춰진다--fail-on-incompatible + --auto-min-update-version (채널이 활성화된 경우 필수) metadata)
네이티브 베이스 라인새로운 네이티브 바이너리 + 채널에 맞춰진 JS 번들아니요 --fail-on-incompatible; 유지 --auto-min-update-version

업로드, 호환성, releaseType 및 관련 플래그에 대한 참조입니다.

Native + OTA Channel Workflow를 계속 사용하세요

Native + OTA Channel Workflow를 사용 중이라면 Native + OTA Channel Workflow live updates를 native release에 안전하게 유지하기 위해 Native + OTA Channel Workflow를 Native Compatibility와 연결하세요 Native Compatibility package comparison rules를 위해 Auto OTA or Native CI branching을 위해 버전 목표 metadata floors를 위해 Capgo CLI 업로드 플래그를 위한 번들 참조 버전 목표 설정