업데이트 동작
복사할 수 있는 명령어
Capgo 앱에 업데이트를 릴리스할 때, 사용자들이 가능한 한 빨리 업데이트를 받기를 원할 것입니다. 그러나 사용자 경험을 방해하지 않고 다운로드를 기다리거나 앱을 다시 시작하지 않도록 하기 위해, 사용자들이 업데이트를 받을 때까지 기다리게 하기를 원하지 않습니다.
Capgo의 업데이트 동작은 업데이트를 빠르게 제공하고 사용자 경험을 최소화하는 균형을 맞추기 위해 설계되었습니다.
기본 업데이트 흐름
기본 업데이트 흐름 섹션Capgo가 앱 업데이트를 처리하는 기본 방식은 다음과 같습니다.
-
Capgo 플러그인이 앱이 전면에 표시될 때 새로운 업데이트가 있는지 확인합니다. 앱이 열려 있는 동안, 반복 타이머(기본 10분)를 통한 반복적인 확인도 수행합니다.
periodCheckDelay업데이트가 발견되면, 사용자가 현재 앱 버전을 사용하는 동안 배경에서 다운로드됩니다. -
(기본 10분)
-
다운로드가 완료되면 Capgo 앱을 백그라운드에 보낼 때까지 기다립니다.
-
사용자가 앱을 다시 전면에 가져다 놓으면 업데이트된 버전으로 실행됩니다.
이 흐름은 사용자가 항상 최신 버전의 앱을 실행하고 업데이트를 위한 경고나 다운로드를 기다리지 않도록 합니다.
이 접근법의 이유
제목 ‘이 접근법의 이유’업데이트를 배경 또는 종료 이벤트에 적용하는 것은 사용자 경험에 몇 가지 주요 이점을 제공합니다:
-
사용자는 업데이트를 위한 경고나 다운로드를 기다리지 않고 중간에 세션을 진행할 수 있습니다.
-
업데이트는 세션 사이에 무방비로 적용되므로 앱을 실행할 때마다 최신 버전의 경험을 제공합니다.
-
활발한 사용자에게 방해를 주지 않고 자주 업데이트를 제공할 수 있습니다.
주된 단점은 사용자가 앱을 백그라운드에 보내고 다시 앱을 시작하면 업데이트가 적용된 사이에 저장되지 않은 상태를 잃을 수 있다는 것입니다.
이 문제를 완화하기 위해 추천하는 방법은 다음과 같습니다.
-
앱이 다시 시작될 때 상태를 부드럽게 복원하고 상태를 자주 저장하는 것입니다.
-
앱 상태의 큰 부분을 수정하는 매우 빈번한 업데이트를 피하는 것입니다.
-
Sensitive 흐름을 위해 업데이트 동작을 개인화하는 것을 고려하는 것입니다 (아래 참조).
업데이트가 적용되는 시기를 개인화하는 방법
업데이트가 적용되는 시기를 개인화하는 방법일부 경우, 업데이트가 적용되는 시기를 더 제어하고 싶을 수 있습니다. 예를 들어, 사용자가 진행 중인 흐름을 완료하기 전에 업데이트를 적용하거나 서버 측 변경과 앱 업데이트를 동기화하고 싶을 수 있습니다.
Capgo은 업데이트가 설치되기 전에 충족해야 하는 조건을 지정할 수 있는 함수를 제공합니다: setDelay 클립보드에 복사
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});__CAPGO_KEEP_0__ 예제는 2023년 6월 1일 이후에 업데이트를 설치하기까지 앱이 최소 60초 동안 백그라운드 상태가 유지될 때까지 업데이트를 지연시킵니다.
__CAPGO_KEEP_0__ 가능한 지연 조건은 다음과 같습니다.
date: 특정 날짜/시간까지 업데이트를 적용하지 않습니다.background: 앱이 백그라운드 상태가 유지된 후 최소 지연 시간이 지난 후에 업데이트를 적용하지 않습니다.nativeVersion: 최소 버전 이상의 네이티브 바이너리가 설치된 후에 업데이트를 적용하지 않습니다.kill: 앱이 종료된 후에 업데이트를 적용하지 않습니다.
__CAPGO_KEEP_0__ 이러한 조건을 혼합하여 업데이트가 설치되는 시기를 정확하게 제어할 수 있습니다.
__CAPGO_KEEP_0__
Section titled “즉시 업데이트 적용”중요한 업데이트 또는 상태가 매우 단순한 앱의 경우, 다운로드가 완료된 즉시 업데이트 적용을 원할 수 있습니다. Capgo은 배경 또는 종료 이벤트를 기다리지 않고 즉시 업데이트 적용을 지원합니다. Capgo config에서 사용하는 autoUpdate policy in your Capacitor config.
autoUpdate 또는 capacitor.config.ts file, not in JavaScript code. It supports these values:
false: 자동 업데이트를 확인하지 않도록 비활성화'off'context: HTML 텍스트 조각 (부모 키 `alternatives_cta_questions`). 페이지/영역: Capacitor live-update 대안 비교 페이지. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `alternatives_cta_questions` (대안 CTA 질문). | HTML 텍스트 조각 (부모 키 `appflow_cta_questions`). 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `appflow_cta_questions` (Appflow CTA 질문). | HTML 텍스트 조각 (부모 키 `capwesome_cta_questions`). 페이지/영역: Capawesome 비교 페이지. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `capwesome_cta_questions` (Capwesome CTA 질문). | HTML 텍스트 조각 (부모 키 `consulting_faq_subtitle`). 페이지/영역: 컨설팅 서비스 페이지. 역할: 섹션 서브 타이틀 또는 태그 라인. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `consulting_faq_subtitle` (컨설팅 FAQ 서브 타이틀). | 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보존: Capgo 제품/브랜드 및 개발자 용어. 메시지 키 `appflow_plugins_or` (Appflow 플러그인 또는).true(기본값): 각 전면 확인 시 자동으로 확인하고 다운로드하고 다음으로 앱이 배경으로 이동할 때 업데이트를 적용합니다.'atBackground'(default): Check and download automatically on each foreground check, then apply the update the next time the app moves to background'atInstall': 새로운 설치 또는 네이티브 앱 스토어 업데이트 후에 즉시 적용; 그렇지 않으면"atBackground"behavior'onLaunch': 앱이 죽은 상태에서 전면으로 가져와졌을 때 (cold start) 즉시 적용; 첫 번째 확인 후에는"atBackground"behavior'always': 전면 전환마다 확인하고 업데이트 있을 때 즉시 적용'onlyDownload': 확인하고 자동으로 다운로드,updateAvailable,
Live Update를 사용하지 않는 네이티브 빌드 테스트 Live Update를 사용하지 않는 네이티브 빌드 테스트 Live Update를 사용하지 않는 네이티브 빌드 테스트에 대한 네이티브 버전, 채널 정책, CI 구성 safeguard에 대해 참조하세요
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' for updates only on app install/update autoSplashscreen: true, keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, // Required when using instant apply with autoSplashscreen }, },};
export default config;그리고 __CAPGO_KEEP_0__가 전면 전환마다 체크를 수행하고 다운로드가 완료된 즉시 업데이트를 적용합니다. 사용자가 앱을 활성화하고 있는 경우에도. autoUpdate: 'always'이러한 즉시 적용 동작은 앱이 열려 있는 동안 Capgo가 제어하는 주기적인 체크로도 트리거될 수 있습니다. periodCheckDelay 참고로 __CAPGO_KEEP_0__는 네이티브 구성이므로 즉시 적용 모드에서는 추가적인 처리가 필요합니다.
주의 autoUpdate code
다운로드를 자동으로 시작하지 않도록 하려면
자동으로 다운로드하는 동안 적용하지 않음If you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};자동으로 다운로드하는 동안 적용하지 않음 updateAvailable 자동으로 다운로드하는 동안 적용하지 않음 CapacitorUpdater.set() 자동으로 다운로드하는 동안 적용하지 않음
자동으로 다운로드하는 동안 적용하지 않음
자동 스플래시 화면 처리Capgo은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래시 화면을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능): autoSplashscreen 클립보드 복사
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};__CAPGO_KEEP_0__은 업데이트가 적용될 때 스플래시 화면을 자동으로 숨깁니다 autoSplashscreen __CAPGO_KEEP_0__은 업데이트가 필요하지 않으면 스플래시 화면을 자동으로 숨깁니다
- __CAPGO_KEEP_0__은 __CAPGO_KEEP_1__ 이벤트를 수동으로 듣거나 __CAPGO_KEEP_2__을 호출할 필요가 없습니다
- __CAPGO_KEEP_2__
- 스피드 스플래시 화면 처리
appReady__CAPGO_KEEP_0__은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래시 화면을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능):SplashScreen.hide()
__CAPGO_KEEP_0__은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래시 화면을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능):
__CAPGO_KEEP_0__은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래시 화면을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능):만들기나 사용자 정의 로직이 필요할 때는 수동 제어를 사용하거나 autoSplashscreen 자신이 처리할 수 있도록 해제할 수 있습니다:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();이벤트는 앱이 초기화 및 적용 중인 업데이트를 완료한 후 발생합니다. 이 시점에서 앱의 UI를 표시할 수 있으며, 사용자는 최신 버전을 볼 수 있습니다. appReady 업데이트를 처리하는 것 외에도
이벤트를 처리하는 것을 추천합니다. appReady 즉시 적용 모드에서 사용할 때 keepUrlPathAfterReload 설정을 사용하여 현재 URL 경로를 유지합니다. 앱이 업데이트로 다시 로드될 때 사용자가 앱의 위치를 유지하고 혼란을 줄이기 위해. true 즉시 적용 모드에서
을 설정하지 않고 appReady 이벤트를 처리하지 않으면 사용자는 업데이트가 적용되는 동안 이전 버전의 앱을 잠시 보거나 초기 경로로 돌아가거나 화면이 깜빡이는 것을 볼 수 있습니다. keepUrlPathAfterReload when using an instant apply mode, the user may briefly see a stale version of the app, be taken back to the initial route, or see a flicker as the update is applied.
빠른 적용 모드를 사용하면 중요 버그 수정 또는 보안 패치 배포에 유용할 수 있지만, 몇 가지 트레이드 오프가 있습니다:
- 업데이트가 적용되는 동안 사용자는 스플래시 스크린을 적절하게 처리하지 않으면 짧은 깜빡임 또는 로딩 상태를 볼 수 있습니다 (either with 또는 manual 이벤트 처리).
autoSplashscreen업데이트가 앱 상태 또는 UI를 수정하면 사용자는 세션 중간에 갑작스러운 변경을 볼 수 있습니다.appReady앱의 위치가 사용자의 위치가 저장되지 않은 경우 (is not set), 사용자는 혼란스럽게 될 수 있습니다. - 앱 상태를 저장하고 복원하는 것을 신중하게 처리하여 smooth transition을 보장해야 합니다.
- 빠른 적용을 활성화하는 경우, 우리는 다음을 권장합니다:
keepUrlPathAfterReload가장 단순한 설정을 위해 - 를 사용하거나, custom logic이 필요할 경우
이벤트를 수동으로 처리하는 것을 추천합니다.
- __CAPGO_KEEP_0__
autoSplashscreen: true__CAPGO_KEEP_0__appReady__CAPGO_KEEP_0__ - 설정
keepUrlPathAfterReload으로true사용자의 위치를 유지하기 위해 사용자의 위치를 앱 내에서 보존합니다. - 사용자의 진행 상황을 잃지 않도록 앱 상태를 필요에 따라 저장하고 복원합니다.
- 앱의 업데이트 동작을 철저히 테스트하여 충격적인 전환, 잃어버린 상태, 또는 방향을 잃는 위치 변경이 없는지 확인합니다.
대부분의 경우, 기본 업데이트 동작이 빠르게 업데이트 достав리면서 최소한의 방해를 줄이는 최적의 균형을 제공합니다. 그러나 특정한 요구가 있는 앱에 대해서는 Capgo가 업데이트 적용 시기를 및 방법을 조정할 수 있는 유연성을 제공합니다.
업데이트 동작에서 계속
업데이트 동작에서 계속하기업데이트 동작을 사용하여 실시간 업데이트 전달을 계획하고 __CAPGO_KEEP_0__ Live Updates와 연결합니다. 업데이트 동작 __CAPGO_KEEP_0__ Live Updates Capgo Live Updates for the product workflow in Capgo Live Updates, 개요 개요 구현 세부 정보에 대해 기능 기능 구현 세부 정보에 대해 업데이트 유형 업데이트 유형 구현 세부 정보에 대해, 그리고 시작하기 시작하기 구현 세부 정보에 대해