__CAPGO_KEEP_0__의 가장 좋은 실시간 업데이트 는 사용자가 거의 알아채지 못하는 업데이트입니다.
__CAPGO_KEEP_0__의 경우 일반적으로 세 가지 것을 의미합니다.
- 다운로드가 작습니다.
- 롤아웃이 제어됩니다.
- 오류가 발생한 경우에도 즉시 복구됩니다.
Capgo의 경우 React Native의 'keep OTA lean' 조언과 동일하게 적용됩니다. 다만 Capgo은 Capacitor 팀에게 몇 가지 추가 조절 장치를 제공합니다. 델타 업데이트, 채널, 자동 롤백, 버전 대상및 선택적 끝-to-끝 암호화.
이러한 기능들을 함께 사용하면 더 작은 패키지 크기, 더 빠른 설치, 그리고 운영에 필요한 더 적은 복잡성을 얻을 수 있습니다.
Lean은 MAU가 동일할 때도 중요합니다.
Capgo-specific한 유용한 한 가지 세부 사항: Capgo MAU는 30일 동안 업데이트 서비스에 접촉한 월 활성 기기 수입니다.
bundle을 얇게 만드는 것은 주로 MAU 카운팅을 줄이는 trick이 아닙니다. 그것은 사용자와 팀이 실제로 느낄 수 있는 부분을 개선하는 데 중요합니다:
- 셀룰러 또는 약한 Wi-Fi에서 더 빠른 다운로드
- direct 업데이트와 함께 실패하거나 롤백된 릴리스에 대한 lãwasted bandwidth
- 테스트 또는 스테이징 릴리스의 blast radius가 더 작아짐
- Lean 업데이트는 정말로 속도, 안전성, 그리고 운영의 규율에 관한 것입니다.
1. Delta 업데이트를 기본으로 설정하세요
만약에 하나만 할 수 있다면, 이것을 하세요.
Lean updates는 정말로 속도, 안전성, 그리고 운영의 규율에 관한 것입니다.
Capgo’s Delta 업데이트 업데이트 시에 변경된 파일만 다운로드하고 전체 웹 배포를 다시 다운로드하는 대신에. 그것은 정기적인 OTA 성능의 가장 큰 단일 승리입니다.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
QA 패스 완료 후:
bunx @capgo/cli@latest bundle upload --channel production --delta
CI가 엄격하게 유지되기를 원한다면 --delta-only 이러한 업로드를 피하기 위해 nobody가 의도치 않게 전체 배포 업로드로 돌아가지 않도록:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Only 사용 --delta-only Delta 업데이트를 지원하는 프로덕션 플릿이 있는 경우에만 사용하십시오. 혼합 플러그인 버전의 경우, manifest 기반 델타 전송을 지원하지 않는 이전 장치가 업데이트를 다운로드할 수 없습니다.
이것은 특히 업데이트 발견 후 앱이 다시 로드될 때까지의 시간이 사용자에게 보이게 되면 더 중요합니다. directUpdate2. 자산을 자산처럼 다루고 자바스크립트 부하로 다루지 마십시오
대형 자산은 OTA 배포에서 조용히 부풀어 오릅니다.
2. 자산을 자산처럼 다루고 자바스크립트 부하로 다루지 마십시오
실용적인 규칙:
- 대형 이미지를 또는 미디어를 JavaScript 내부에 인라인하지 말고 일반 자산 파일이 될 수 있는 경우에는.
- API에 자주 변경되는 콘텐츠를 저장하거나 CDN에 저장하여 앱 배포 패키지 내부에 저장할 필요가 없다면.
- 마케팅 이미지를, 온보딩 비디오, 또는 한 번의 캠페인 자산과 같은 매번 릴리즈마다 바뀌는 콘텐츠에 주의하십시오.
- 안정적인 자산은 안정적으로 유지하십시오. 델타 업데이트로, 변경되지 않은 파일은 다시 다운로드하는 대신 재사용됩니다.
이것은 Capgo의 속도를 유지하는 가장 쉬운 방법입니다. 앱이 커질수록, 작은 UI 수정이 사용자에게 많은 관련 없는 미디어를 다운로드하도록 강요하는 가장 나쁜 패턴입니다.
3. 실제 네이티브 변경에만 네이티브 릴리즈를 유지하십시오.
Capgo은 런타임에 로드되는 HTML, CSS, JavaScript, 및 자산을 업데이트합니다.
다음과 같은 경우에는 올바른 채널이 아닙니다:
- 새 네이티브 플러그인
- 권한 변경
capacitor.config.ts변경- iOS 또는 Android 네이티브 프로젝트 상태를 수정하는 모든 것.
성능에도 중요합니다. OTA 라인에 주요 구조적 변경을 지속적으로 밀어 넣으면, 업데이트 전략이 시간이 지남에 따라 더 무거워지고 위험해집니다.
2개의 릴리스 라인을 의도적으로 사용하세요.
네이티브 라인
플러그인 변경, 권한 변경 및 네이티브 구성에 사용하세요.
bun run build
bunx cap sync
그 다음 정상적인 스토어 릴리스를 배포하세요.
Capgo 라인
안전한 웹层 반복을 위해 사용하세요.
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
최근에 많은 수명이 긴 자산을 추가한 경우에는 자주 네이티브 베이스 라인을 업데이트하세요. 새로운 베이스 라인을 포함하는 최신 스토어 빌드는 미래의 Capgo diff를 작게 유지합니다.
4. 채널을 사용하여 롤아웃 크기를 작게 유지하세요.
'lean' 업데이트는 단순히 메가바이트에만 의존하는 것이 아닙니다. 업데이트가 좋은지 알기 전에 업데이트를 받는 장치의 수에 대해서도 의존합니다.
Capgo’s 채널 시스템 은 앱을 제어하는 가장 깨끗한 방법입니다.
stagingQA를 위해beta초대된 테스터를 위해production모두에게hotfix비상 복구를 위해
간단한 흐름은 다음과 같습니다.
- 업로드 하세요.
staging. - 실제 장치에서 검증하세요.
- 조율된 채널 또는 백분율 기반 롤아웃을 통해 점진적으로 출시하세요.
- 건강이 떨어지면 즉시 롤백하세요.
앱이 여러 네이티브 베이스라인이 세상에 퍼져 있다면, pair channels with을 pair channels with 버전 목표. 그들이 더 오래된 바이너리에서 불필요하거나 무겁게 패키지를 방지하기 위해.
더 긴 검토 루프를 원하는 팀에 대해, Capgo도 잘 작동합니다. PR 미리보기. 제품, QA, 및 이해관계자들이 새로운 테스트 플라이트 또는 내부 빌드에 기다리지 않고 자바스크립트만 변경할 수 있도록 합니다.
5. 직접 업데이트 활성화 시, 시작 시간을 최적화 하세요.
업데이트를 적용하는 속도에 따라, 시작 경로가 더 엄격해야 합니다.
Capgo의 업데이트 동작 Delta 업데이트와 pair하는 것을 명확히 권장합니다. directUpdate 그것은 올바른 기본값입니다.
두 번째 경계는 notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
If your app does not report ready within the default 10-second window, or within whatever you set in your __CAPGO_KEEP_0__ config, __CAPGO_KEEP_1__ 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() Call 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:
- Boot-up 작업을 빠르게 하기 위해
notifyAppReady()중요한 경로에서 느린 부팅 시간 작업을 피하십시오. - 앱 상태를 저장하고 복원할 때 재로드 즉시 발생할 수 있으므로 주의하십시오.
- 네트워크가 좋지 않은 상황이나 저사양 장치 시나리오를 테스트하기 전에 널리 출시하기 전에
- 만약 최근에 검토하지 않았다면,
notifyAppReady 가이드 를 다시 읽어보십시오. 6. 내부 업데이트 채널을 사용하여 불필요한 네이티브 리빌드 대신 사용하십시오.
6
많은 모바일 팀이 웹 전용으로明らかな 변경 사항에 대해 빌드하는 시간을浪費합니다.
변경 사항이:
- 복사
- UI 보수
- 온보딩 플로우
- 가격 화면 로직
- 분석 연결
- 기능 플래그
- prompt 또는 API 응답 렌더링
Capgo 업데이트는 종종 더 빠른 검토 항목입니다.
That means fewer native rebuilds, less TestFlight churn, and a tighter feedback loop for the team. It is one of the most underused benefits of Capgo: you can move more review and QA work into the OTA lane without breaking the native/web boundary.
__CAPGO_KEEP_0__의 가장 미사용된 이점 중 하나는 웹/네이티브 경계를 깨지 않고 OTA 라인으로 리뷰 및 QA 작업을 더 많이 이동할 수 있다는 것입니다. 개발 중인 애플리케이션 ID 하나 이러한 유지 관리를 시간이 지남에 따라 지속적으로 유지하는 실제적인 방법을 다룹니다.
7. 이중화와 비밀을 분리하세요
작은 패키지와 안전한 패키지는 서로 다른 문제를 해결합니다.
채널은 적격성을 제어합니다. 채널 자체만으로는 패키지를 비밀로 만드는 것이 아닙니다.
강한 전달 보증이 필요하다면:
- 활성화 라이브 업데이트 암호화,
- 사용 사용자 정의 저장소 또는 자체 호스팅된 전달,
- CI 또는 보안된 운영자 워크플로우에서만 개인 키를 유지하세요.
업데이트 크기가 무시되지 않는다는 것은 단지 두 가지 차원에 대해 최적화해야 한다는 것을 의미합니다.
- 속도 향상을 위해 최적화 하세요.
- 배달을 위한 암호화 하세요.
- 릴리즈를 위한 채널을 설정하세요.
- 회복을 위한 롤백을 사용하세요.
실용적인 "Capgo" 워크플로우
기본적인 운영 모델을 간단하게 사용하고 싶다면 이 옵션을 사용하세요.
- 자연스럽고 OTA 릴리즈 경로를 분리하세요.
- JS 변경 사항을 업로드 하기 전에
--delta기본적으로 - 사용하세요.
staging및beta채널을 설정하세요.production. - __CAPGO_KEEP_0__ 업데이트 통계 및 로그를 확인하세요. 배포 후에도 업데이트를 확인하세요, 단순히 배포 전만 확인하는 것이 아닙니다.
- PR을 통해 설치 가능한 프리뷰로 변환할 수 있습니다. native 빌드가 불필요할 때.
- 가능한 경우, 자주 변경되는 큰 미디어를 번들에서 제외하세요.
- native 변경이나 큰 자산 증가 후에 native 기준선을 갱신하세요.
- Treat
notifyAppReady()release engineering의 일부로 rollback 및 롤백 동작을 다루세요, setup trivia가 아닙니다.
이 combination은 일반적인 “업데이트한 내용만 업로드하세요” 접근법보다 오래 지속되는 빠른 속도를 유지합니다.
마무리
Capgo 팀에게서 “빠르고 얇다”는 단순히 번들 크기 문제가 아닙니다.
그것은 릴리즈 디자인 문제입니다.
Delta 업데이트를 사용하여 패킷 크기, 채널을 사용하여 롤아웃 크기, 롤백을 사용하여 실패 크기.
How to Keep Capgo Updates Lean and Fast
이미 사용 중이라면 How to Keep Capgo Updates Lean and Fast 채널 라우팅과 스테이지드 롤아웃을 계획하기 위해 연결하세요. Channels Channels Channels Channels Beta 테스트 솔루션 Channels Channels __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__