메인 콘텐츠로 바로가기
Tutorial

빠르고 가벼운 Capgo 업데이트를 유지하는 방법

Capgo의 실용적인 가이드: 델타 번들, 채널 기반 롤아웃, 네이티브 베이스 라인 리프레시, PR 미리보기, 직접 업데이트의 경계를 설정하는 방법

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

빠르고 가벼운 Capgo 업데이트를 유지하는 방법

사용자가 거의 인지하지 못하는 라이브 업데이트는 최고입니다.

그것은 일반적으로 세 가지 것을 의미합니다.

  1. 다운로드 크기가 작습니다.
  2. 롤아웃이 제어됩니다.
  3. __CAPGO_KEEP_0__는 문제가 발생하면 즉시 복구됩니다.

Capgo의 'OTA lean' 조언은 React Native에서 작동하는 것과 동일합니다. Capgo은 Capacitor 팀에게 몇 가지 추가 조절 장치를 제공합니다. 델타 업데이트, 채널, 자동 롤백, 버전 대상버전 대상 , 옵션.

끝-to-끝 암호화

__CAPGO_KEEP_0__를 사용하면, __CAPGO_KEEP_1__를 함께 사용하면, 작은 패킷, 빠른 설치, 그리고 운영 메시지의 크기가 줄어듭니다.

One useful Capgo-specific detail: Capgo MAU is effectively the number of monthly active devices that contacted the update service in the last 30 days.

__CAPGO_KEEP_0__-specific한 유용한 세부 사항: __CAPGO_KEEP_1__ MAU는 실제로 30일 동안 업데이트 서비스에 접촉한 월간 활성 기기 수입니다.','. __CAPGO_KEEP_1__는 주로 MAU 카운팅을 줄이는 트릭이 아닙니다. 사용자와 팀이 실제로 느낀 부분을 개선하기 때문입니다.

  • 셀룰러 네트워크나 약한 Wi-Fi 환경에서 더 빠른 다운로드
  • 직접 업데이트 통해 보다 나은 경험
  • 실패하거나 롤백된 릴리즈에 대한
  • 테스트나 스테이징한 릴리즈의

작은 실패 범위

Lean 업데이트란

속도, 안전, 그리고 운영-discipline에 대한

Capgo’s 만약에 하나만 할 수 있다면 이것을 하라. __CAPGO_KEEP_0__의

bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta

Delta 업데이트

bunx @capgo/cli@latest bundle upload --channel production --delta

If you want CI to stay strict, use __CAPGO_KEEP_0__ --delta-only so nobody accidentally falls back to full-bundle uploads:

bunx @capgo/cli@latest bundle upload --channel production --delta-only

Only use __CAPGO_KEEP_0__ when your production fleet supports Delta updates. On mixed plugin versions, older devices that do not support manifest-based delta delivery will not be able to download that update. --delta-only This matters even more if you use __CAPGO_KEEP_0__, because the time between “update found” and “app reloaded” becomes visible to the user.

2. Treat assets like assets, not JavaScript baggage directUpdateLarge assets are where OTA bundles quietly get bloated.

Some practical rules:

Do not inline big images or media inside JavaScript when a normal asset file will do.

Keep frequently changing content on your own CDN or __CAPGO_KEEP_0__ if it does not need to live inside the shipped app bundle.

  • Be careful with marketing images, onboarding videos, and one-off campaign assets that get replaced every release.
  • CI는 엄격하게 유지되기를 원한다면 API을 사용하세요.
  • 누구도 업로드를 다시 시작하지 않도록 하기 위해 전체 배포 업로드로 돌아가지 않도록 하세요: __CAPGO_KEEP_0__.
  • 안정된 자산은 안정되도록 유지하세요. 델타 업데이트와 함께, 변경되지 않은 파일은 다시 다운로드하는 대신 재사용됩니다.

Capgo의 성능이 앱이 성장함에 따라 유지되는 가장 쉬운 방법입니다. 가장 나쁜 패턴은 사용자가 관련 없는 미디어의 무더기를 다운로드해야 하는 작은 UI 수정입니다.

3. 실제 네이티브 변경에 대한 네이티브 릴리즈를 유지하세요

Capgo은 런타임에 로드되는 HTML, CSS, JavaScript 및 자산을 업데이트합니다.

다음과 같은 경우는 올바른 채널이 아닙니다:

  • 새 네이티브 플러그인
  • 권한 변경
  • capacitor.config.ts 프로젝트 상태를 수정하는 iOS 또는 Android 네이티브 프로젝트 변경
  • 이 라인은 성능에도 중요합니다. OTA 채널에 주요 구조적 변경을 계속 밀어 넣으면 업데이트 전략이 무거워지고 위험도가 증가하는 것을 피하기 위해 두 개의 릴리스 채널을 사용하세요.

네이티브 채널

Native lane

Use two release lanes on purpose:

플러그인 변경, 권한 변경 및 네이티브 구성:

bun run build
bunx cap sync

그런 다음 일반 스토어 릴리즈를 배포합니다.

Capgo 경로

안전한 웹层 반복을 위해:

bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta

최근에 많은 수명이 긴 자산을 추가한 경우에만 자주 native 기본선을 갱신하세요. 새로운 스토어 빌드는 새로운 기본선을 포함하여 미래의 Capgo diff를 작게 유지합니다.

4. 채널을 사용하여 롤아웃 크기를 작게 유지하세요

‘Lean’ 업데이트는 단순히 메가바이트만큼의 크기만 아니라, 업데이트가 좋은지 알기 전에 업데이트를 받는 장치의 수에 대한 것입니다.

Capgo’s 채널 시스템 은 업데이트를 받는 장치의 수를 제어하는 가장 깨끗한 방법입니다:

  • staging QA
  • beta 초대된 테스터
  • production 모든 사용자에게
  • hotfix 비상 복구를 위한

단순한 흐름은 다음과 같습니다:

  1. 업로드 staging.
  2. 실제 기기에서 검증합니다.
  3. 조정된 채널 또는 퍼센티지 기반 롤아웃을 통해 점진적으로 배포합니다.
  4. 건강이 떨어지면 즉시 롤백합니다.

여러 개의 네이티브 베이스라인이 세상에 퍼져 있다면, pair channels with 버전 대상이것은 더 오래된 바이너리에서 불필요하거나 무거운 패키지를 차단합니다.

팀이 더 긴 리뷰 루프를 원한다면, Capgo도 잘 작동합니다. PR 미리보기. 제품, QA, 및 이해관계자들이 JS-only 변경을 테스트할 수 있도록 TestFlight 또는 내부 빌드에 새로운 것을 기다리지 않도록 합니다.

5. 직접 업데이트 활성화 시, 시작 시간을 최적화하세요

업데이트를 적용하고 싶은 속도에 따라 시작 경로가 얼마나 엄격해야 하는지에 따라 결정됩니다.

Capgo’s 업데이트 동작 docs는 Delta 업데이트와 pair하는 것을 명확히 권장합니다. 그게 올바른 기본 설정입니다. directUpdate 두 번째 경계는

앱이 기본 10초 또는 __CAPGO_KEEP_0__ 설정에서 지정한 시간 내에 준비되지 않으면, __CAPGO_KEEP_1__은 이전에 잘 작동하던 버전을 복원하고 해당 배포를 무효화할 수 있습니다. 그 롤백 동작이 프로덕션에서 원하는 동작이지만, 시작 시간을 깨끗하게 유지해야 하므로, notifyAppReady().

import { CapacitorUpdater } from '@capgo/capacitor-updater'

CapacitorUpdater.notifyAppReady()

Call notifyAppReady() __CAPGO_KEEP_1__ appReadyTimeout you set in your Capacitor config, Capgo can mark that bundle invalid and restore the previous good version. That rollback behavior is what you want in production, but it also means you should keep startup clean:

  • config notifyAppReady() 올바른 위치에
  • 중요 경로에서 느린 부팅 시간 작업을 피하십시오.
  • 재로드 즉시 앱 상태를 신중히 저장하고 복원하십시오.
  • 넓은 배포 전에 나쁜 네트워크 및 저성능 장치 시나리오를 테스트하십시오.

최근에 검토하지 않은 경우, "notifyAppReady" 가이드는 다시 읽어보는 것이 가치가 있습니다. 6. 내부 업데이트 채널을 사용하여 불필요한 네이티브 리빌드 대신 사용하십시오. 많은 모바일 팀은 명백히 웹 전용인 변경 사항에 대해 명백히 웹 전용인 변경 사항에 대해 바이너리 빌드를 위해 시간을浪費합니다.

변경이:

복사:

UI 폴리시:

  • UI polish
  • copy
  • 온보딩 플로우
  • 가격화 화면 논리
  • 분석 로직 연결
  • 기능 플래그
  • API를 위한 프롬프트 또는 응답 렌더링

Capgo 업데이트가 자주 빠른 리뷰 아티팩트입니다.

이것은 Capgo의 가장 미사용된 이점 중 하나입니다: OTA 라인에 리뷰 및 QA 작업을 더 많이 이동할 수 있습니다. native/web 경계를 깨지 않고.

Capacitor의 단일 모바일 앱 ID를 사용한 스테이징 방법 이 가이드는 이 CLEAN한 상태를 유지하는 실제적인 방법을 다룹니다.

7. Lean과 Secret을 분리하세요

작은 패키지와 안전한 패키지는 서로 다른 문제를 해결합니다.

채널은 자율성을 제어합니다. 그들만의 배포를 암호화하는 것은 불가능합니다.

더 강력한 배포 보증이 필요합니다:

업데이트 크기는 무시되지 않습니다. 단지 두 가지 측면을 모두 최적화해야 한다는 것을 의미합니다:

  • 속도에 대한 최적화
  • 배포 제어를 위해 암호화
  • 롤아웃 제어를 위해 채널
  • 회복을 위해 롤백

실용적인 "lean Capgo" 워크플로우

간단한 기본 운영 모델을 원한다면 사용하세요:

  1. 자연스러운 및 OTA 릴리즈 경로를 분리하세요.
  2. __CAPGO_KEEP_0__ JS 변경 사항을 업로드하세요. --delta 기본적으로.
  3. stagingbeta 채널을 사용하기 전에 production.
  4. 롤아웃 후에만 업데이트 통계 및 로그를 확인하세요. 자연스러운 빌드가 필요하지 않다면 PR을 설치 가능한 미리보기로 변환하세요.
  5. channels
  6. __CAPGO_KEEP_0__의 큰, 자주 변경되는 미디어를 가능한 한 번들에서 제거하세요.
  7. 자연스러운 baseline을 업데이트하기 위해 주요 자산 성장 또는 네이티브 변경이 발생할 때마다 네이티브 baseline을 갱신하세요.
  8. Treat notifyAppReady() Treat

and rollback behavior as part of release engineering, not setup trivia.

그 combination은 일반적인 “업로드 된 변경 사항만 업로드하세요” 접근법보다 오래 동안 빠르게 유지됩니다.

For Capgo teams, “lean and fast” is not just a bundle-size problem.

__CAPGO_KEEP_0__ 팀에게서 “lean and fast”는 단순히 번들 크기 문제가 아닙니다.

그것은 릴리스 디자인 문제입니다.

Capacitor 앱에 대한 실시간 업데이트

Capgo를 통해 웹-layer 버그가 살아남을 때, 앱 스토어 승인까지 며칠 기다리지 않고修정 내용을 배포하세요. 사용자는 배경에서 업데이트를 받으면서, 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

블로그에서 최신 뉴스

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