메인 콘텐츠로 건너뛰기
튜토리얼

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

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

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

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

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

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

  1. 다운로드가 작습니다.
  2. 롤아웃이 제어됩니다.
  3. Recovery는 문제가 발생하면 즉시 발생합니다.

The same “keep OTA lean” advice that works in React Native land also applies to Capgo. The difference is that Capgo gives Capacitor teams a few extra levers: Delta 업데이트, 채널, 자동 롤백, 버전 대상, and optional end-to-end 암호화.

이러한 기능을 함께 사용하면 패키지 크기가 작아지고 설치 속도가 빨라지고 운영 메시지가 줄어듭니다.

MAU가 동일한 경우에도 Lean은 중요합니다.

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.

bundle을 얇게 만드는 것은 주로 MAU 카운팅을 줄이기 위한 trick이 아닙니다. 사용자와 팀이 실제로 느낄 수 있는 부분을 개선하기 때문입니다.

  • __CAPGO_KEEP_0__의
  • Faster downloads on cellular or weak Wi-Fi Better experience with
  • direct updates
  • Less wasted bandwidth on failed or rolled-back releases

Smaller blast radius when testing or staging a release

Lean updates are really about speed, safety, and operational discipline.

1. Default to Delta updates

Capgo’s __CAPGO_KEEP_0__의 Delta updates

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

send only files that changed between versions instead of re-downloading the full web bundle. That is the biggest single win for routine OTA performance.

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

If you want CI to stay strict, use --delta-only 이러한 업로드를 피하기 위해

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

Only use --delta-only 만약 프로덕션 플릿이 델타 업데이트를 지원한다면

만약 플러그인 버전이 혼합되어 있다면, 델타 업데이트를 지원하지 않는 이전 장치에서는 업데이트를 다운로드할 수 없습니다. directUpdateThis matters even more if you use

, 사용자가 앱을 다시 로드하기까지의 시간이 사용자에게 보이기 시작할 것입니다.

2. 자산을 자산으로 다루세요, 자바스크립트의 짐으로 다루지 마세요

OTA 배포에서 큰 자산은 조용히 배포가 커집니다.

  • Some practical rules:
  • Keep frequently changing content on your own CDN or API if it does not need to live inside the shipped app bundle.
  • 자주 변경되는 콘텐츠는 CDN에 저장하거나 __CAPGO_KEEP_0__에 저장하세요. 앱 배포에 포함되지 않아도 됩니다.
  • 안정된 자산은 안정되도록 유지하세요. 델타 업데이트로 인해 변경되지 않은 파일은 다시 다운로드하는 대신 재사용됩니다.

Capgo의 성능을 유지하기 위해 가장 쉬운 방법 중 하나입니다. 작은 UI 수정이 사용자에게 많은 관련 없는 미디어를 다운로드하도록 강요하는 가장 나쁜 패턴입니다.

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

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

다음은 올바르지 않은 채널입니다:

  • 새 네이티브 플러그인
  • 권한 변경
  • capacitor.config.ts 변경
  • iOS 또는 Android 네이티브 프로젝트 상태를 수정하는 것

그 라인은 성능에도 중요합니다. OTA 채널에 주요 구조적 변경을 계속 밀어 넣으면 업데이트 전략이 무거워지고 위험성이 높아집니다.

목적을 가지고 두 개의 릴리스 채널을 사용하세요:

네이티브 채널

plugin 변경, 권한 변경 및 네이티브 구성에 대한 변경 사항:

bun run build
bunx cap sync

일반 스토어 릴리스를 배포합니다.

Capgo 경로

웹层 안전한 반복에 대한:

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

최근에 많은 수명이 긴 자산을 추가한 경우에는 자주 네이티브 베이스 라인도 갱신해 주세요. 새로운 베이스 라인이 포함된 최신 스토어 빌드는 미래의 Capgo diff를 작게 유지합니다.

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

업데이트는 단순히 메가바이트만큼의 크기만 아니라, 업데이트 전까지 좋은지 확인하기 전에 업데이트 받는 장치의 수도 고려해야 합니다.

Capgo의 채널 시스템 업데이트 전까지 좋은지 확인하기 전에 업데이트 받는 장치의 수를 제어하는 가장 깨끗한 방법입니다.

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

A simple flow는 다음과 같습니다:

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

실제 기기에서 검증한 후 배포합니다. 버전 대상과 pair channels를 사용하여, 여러 native baseline이 wild에 존재하는 앱의 경우, incompatible 또는 불필요한 무거운 패키지를 older binaries에서 제거합니다.팀이 더 긴밀한 검토 루프를 원하는 경우, __CAPGO_KEEP_0__도 잘 작동합니다.

For teams that want even tighter review loops, Capgo also works well for PR 미리보기. 제품, QA, 및 이해관계자들은 TestFlight 또는 Play 내부 빌드 기다리지 않고 JS-only 변경을 테스트할 수 있습니다.

5. 직접 업데이트 활성화 시, 최적화된 시작 시간을 하려면

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

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

앱이 기본 10초 창 또는 __CAPGO_KEEP_0__ config에서 설정한 것과 같은 창 내에서 준비되지 않은 경우, __CAPGO_KEEP_1__은 이전에 잘 작동한 버전으로 롤백하고 해당 번들을 유효하지 않게 표시할 수 있습니다. 그 롤백 동작이 프로덕션에서 원하는 동작이지만, 시작 시간을 깨끗하게 유지해야 합니다: notifyAppReady().

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

CapacitorUpdater.notifyAppReady()

Call notifyAppReady() __CAPGO_KEEP_0__ 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:

  • 업데이트 동작 notifyAppReady() 올바른 위치에
  • 중요한 경로에서 느린 부팅 시간 작업을 피하십시오.
  • 앱을 즉시 다시 로드할 경우 앱 상태를 신중히 저장하고 복원하십시오.
  • 너무 넓은 롤아웃 전에 나쁜 네트워크 및 저성능 장치 시나리오를 테스트하십시오.

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

변경이:

복사:

UI 폴리시:

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

Capgo 업데이트가 자주 빠른 검토 항목이기 때문에, 그 결과는 자주 더 빠른 검토입니다.

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

Capgo의 한 개의 모바일 앱 ID를 사용하여 스테이징하는 방법 이것은 시간이 지남에 따라 이 CLEAN을 유지하는 실제적인 방법을 다룹니다.

7. Lean과 Secret를 분리하세요

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

__CAPGO_KEEP_0__ 채널을 통제할 수 있습니다. 그들만의 채널은 비밀을 유지하지 않습니다.

__CAPGO_KEEP_1__ 강력한 전달 보증이 필요합니다.

__CAPGO_KEEP_7__

  • __CAPGO_KEEP_8__
  • __CAPGO_KEEP_9__
  • __CAPGO_KEEP_10__
  • __CAPGO_KEEP_11__

실용적인 "가볍고 Capgo" 워크플로우

기본적인 운영 모델을 간단하게 사용하고 싶다면 이 옵션을 사용하세요.

  1. 원본과 OTA 릴리스 경로를 분리하세요.
  2. JS 변경 사항을 --delta 기본적으로
  3. 이용하여 stagingbeta 채널을 사용하기 전에 production.
  4. 업데이트 통계와 로그를 롤아웃 후에만, 그 전에만 아니라면. 원본 빌드를 필요로 하지 않는 경우 PR을 설치 가능한 프리뷰로 변환하세요.
  5. __CAPGO_KEEP_0__
  6. 대형, 자주 변경되는 미디어를 가능한 한 번들에서 제외하세요.
  7. 주요 자산 증가 또는 네이티브 변경 후 네이티브 베이스 라인 다시 로드하세요.
  8. 관리 notifyAppReady() 및 롤백 동작은 릴리스 엔지니어링, 설정의 트리비아가 아닌 부분으로 다룹니다.

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

마무리 생각

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

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

Delta 업데이트를 사용하여 전송 크기, 채널을 사용하여 롤아웃 크기, 롤백을 사용하여 실패 크기.

Keep going from How to Keep Capgo Updates Lean and Fast

How to Keep __CAPGO_KEEP_0__ Updates Lean and Fast에서 계속하세요. How to Keep Capgo Updates Lean and Fast __CAPGO_KEEP_0__ 채널 라우팅과 단계별 롤아웃을 계획하고 연결하세요. __CAPGO_KEEP_0__ 채널에 대한 구현 세부 정보는 __CAPGO_KEEP_0__ 채널에 대한 구현 세부 정보는 __CAPGO_KEEP_0__ 채널에 대한 구현 세부 정보는 Beta 테스트 솔루션 Beta 테스트 솔루션의 제품 워크플로에 대해 버전 대상 솔루션 버전 대상 솔루션의 제품 워크플로에 대해 __CAPGO_KEEP_0__에 의해 작성되었습니다. __CAPGO_KEEP_0__에 의해 작성되었습니다. __CAPGO_KEEP_0__에 의해 작성되었습니다.

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

웹层 버그가 활성화된 경우 Capgo을 통해 픽스를 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 마세요. 사용자는 배경에서 업데이트 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

블로그에서 최신 뉴스

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