내용으로 건너뛰기

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

일반적인 Capgo 설정은 개발 생산 context 채널. CI는 OTA 번들을 업로드하고 dev, 그리고 CI는 OTA를 production 준비가 되면. 팀들은 종종 --fail-on-incompatible live update가 새로운 네이티브 code이 필요할 때 CI가 실수로 live update를 배포하지 못하도록 막습니다.

이 페이지는 다음 질문에 대한 답변입니다: 채널의 현재 네이티브 패키지와 호환되지 않는 번들이 필요할 때 의도적으로 채널의 현재 네이티브 패키지와 호환되지 않는 번들이 필요할 때

If you need the background on why Capgo compares native packages, start with Native Compatibility. For a full CI branch that picks OTA vs Capgo Build automatically, see Auto OTA or Native.

권장 채널 레이아웃 섹션

이 안내서에서는 dev and 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 업로드. 업로드 중인 채널에 현재 활성화된 버전과 비교하여 업로드하는 배포본의 네이티브 패키지를 비교합니다. 현재 활성화된 채널의 배포본과 다르면 업로드는 실패하고 배포되지 않습니다.일상 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 선택적 CI 게이트 전 업로드: --auto-min-update-version 터미널 창

클립보드 복사

자발적 자연스러운 버림 (이 플래그를 한 번만 사용하세요)
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__을 받지 않도록 하기 위해 --auto-min-update-version 기존 바이너리가 있는 기기들이 새로운 앱을 설치할 때까지 새로운 __CAPGO_KEEP_0__을 받지 않도록 하기 위해 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 만약 그 채널도 의도적으로 네이티브 베이스 라인도 받는 경우. 이 SWITCH 이후, 채널에 업로드하는 모든 업로드는 --auto-min-update-version 또는 --min-update-version.

  2. 페이지/영역: Capgo UI의 더 긴 문자열 (부모 키 `alternatives_cta_questions`). 영역: Capacitor live-update alternatives 비교 페이지. 역할: 장기 마케팅 또는 법률 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 장기 마케팅 또는 법률 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | 페이지/영역: Capawesome 비교 페이지. 역할: 장기 마케팅 또는 법률 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | 페이지/영역: 컨설팅 서비스 페이지. 역할: 섹션 서브 타이틀 또는 태그 라인. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `consulting_faq_subtitle` (컨설팅 FAQ 서브 타이틀). | 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보존: Capgo 제품/브랜드 및 개발자 용어.

    네이티브 바이너리를 배포

  3. iOS/Android 앱을 빌드하고 제출하여 새로운 플러그인 또는 네이티브 변경 사항을 포함합니다. 사용자가 그 바이너리를 설치하기 전까지, 그들은 안전하게 네이티브 패키지를 의존하는 번들을 실행할 수 없습니다. --fail-on-incompatible)

    OTA 베이스 라인 업로드 (아니요,
    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

Section titled “FAQ” --fail-on-incompatible 자주 묻는 질문

Can I keep

채널에서 --auto-min-update-version and still push a native-incompatible bundle?

자연스럽게 호환되지 않는 채널을 업로드 할 수 있나요?

Section titled “Can I keep --fail-on-incompatible and still push a native-incompatible bundle?”

No. 업로드의 네이티브 패키지가 채널의 라이브 번들을 다를 경우, 플래그는 명시적으로 명령을 실패시킵니다. 의도적인 네이티브 업데이트를 위해, 플래그를 제외하고 (그리고 사용할 수 있는 경우에 ) 그 업로드에서만 사용하세요. (For an intentional native bump, omit the flag on that one upload (and use ) when you can).

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

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

예, 그게 당신의 프로세스와 일치하면 됩니다. 같은 규칙을 적용하여 채널당: 호환성 검사는 대상 채널에 현재 업로드된 내용과 비교합니다. 새로운 네이티브 패키지를 기록하기 위해서는 production 업로드를 dev 만족스럽게 보이면, --fail-on-incompatible네이티브-베이스 라인 업로드를 사용하여

CI fails and Capgo does not ship that upload. That is the expected outcome. Either the change was accidental (fix the native packages and retry as OTA), or it was intentional (use the native path above).

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

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

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

‘Native + OTA 채널 워크플로우’에서 계속하기

만약 당신이 사용하고 있다면 Native + OTA 채널 워크플로우 live 업데이트를 native 릴리즈에 안전하게 유지하기 위해 Native + OTA 채널 워크플로우를 Native 호환성 패키지 비교 규칙에 대해 Auto OTA 또는 Native CI branch에 대해 버전 목표 메타데이터 floor에 대해, 그리고 Capgo CLI 배포 참조 업로드 플래그에 대해