내용으로 건너뛰기

업데이트 동작

Capgo 앱에 대한 업데이트를 릴리스할 때, 사용자들이 가능한 한 빨리 업데이트를 받기를 원할 것입니다. 그러나 사용자 경험을 방해하지 않고 다운로드를 기다리거나 앱을 다시 시작하지 않도록 하기 위해, 사용자들이 업데이트를 받을 때까지 기다리게 하기를 원하지 않습니다.

Capgo의 업데이트 동작은 업데이트를 빠르게 제공하는 것과 사용자 경험을 최소화하는 것 사이의 균형을 찾기 위해 설계되었습니다.

기본 업데이트 흐름

기본 업데이트 흐름

Capgo의 기본 동작은 다음과 같습니다.

  1. 앱이 전면에 표시될 때, Capgo 플러그인은 새로운 업데이트가 있는지 확인합니다. 앱이 열려 있는 동안, 반복 타이머를 통한 반복적인 확인도 수행합니다. periodCheckDelay (기본 10분).

  2. 업데이트가 발견되면, 사용자가 현재 버전의 앱을 계속 사용하는 동안 배경에서 다운로드됩니다.

  3. 다운로드가 완료되면 Capgo 앱을 백그라운드에 보낼 때까지 기다립니다.

  4. 사용자가 앱을 다시 전면에 가져다 놓으면 업데이트된 버전으로 실행됩니다.

이 흐름은 사용자가 항상 최신 버전의 앱을 실행하고 업데이트를 위한 지시나 다운로드를 기다리지 않도록 합니다.

업데이트를 배경 또는 종료 이벤트에 적용하는 것은 사용자 경험에 몇 가지 주요 이점을 제공합니다:

  • 사용자는 업데이트를 위한 지시나 다운로드를 기다리지 않고 업데이트가 진행되는 동안 중단되지 않습니다.

  • 업데이트는 세션 사이에 무결성으로 적용되므로 앱을 실행할 때 항상 최신 버전의 경험을 제공합니다.

  • 업데이트를 자주 배포할 수 있습니다. 사용자가 앱을 사용 중일 때 업데이트를 중단할 걱정은 없습니다.

주된 단점은 사용자가 앱을 백그라운드에 보내고 다시 앱을 시작하면 업데이트가 적용된 사이에 저장하지 않은 상태를 잃을 수 있다는 것입니다.

이 문제를 완화하기 위해 추천하는 방법은 다음과 같습니다.

  • 앱이 다시 시작될 때까지 자주 상태를 저장하고 그 상태를 부드럽게 복원하는 것입니다.

  • 앱 상태의 큰 부분을 수정하는 업데이트를 자주 배포하지 않도록 하는 것입니다.

  • 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',
},
],
});

이 예제는 2023년 6월 1일 이후에 그리고 앱이 최소 60초 동안 백그라운드 상태가 되기까지 업데이트를 지연시키도록 설치합니다.

가능한 지연 조건은 다음과 같습니다.

  • date: 특정 날짜/시간 이후에 업데이트를 적용하기까지 기다립니다.
  • background: 앱이 백그라운드 상태가 되면 최소 지연 시간이 지난 후에 업데이트를 적용하기까지 기다립니다.
  • nativeVersion: 최소 버전의 네이티브 바이너리가 설치되기까지 업데이트를 적용하기까지 기다립니다.
  • kill: 앱이 종료될 때까지 업데이트를 적용하기까지 기다립니다.

이러한 조건을 혼합하여 업데이트가 설치되는 시기를 정확하게 제어할 수 있습니다.

이 불일치 사항은 향후 릴리스에서 수정될 예정입니다.

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'(기본값): 각 전면 검사 시 자동으로 확인하고 다운로드하고, 앱이 배경으로 이동할 때 업데이트 적용
  • true __CAPGO_KEEP_0__ 'atBackground' __CAPGO_KEEP_0__
  • 'atInstall': 새로운 설치 또는 네이티브 앱 스토어 업데이트가 끝난 후에만 즉시 적용; 그 외에는 "atBackground" behavior
  • 'onLaunch': 앱이 죽은 상태에서 전면으로 가져와졌을 때 (cold start) 즉시 적용; 그 후 첫 번째 확인 후에는 "atBackground" behavior
  • 'always': 전면 전환마다 확인하고 업데이트가 있을 때 즉시 적용
  • 'onlyDownload': 확인하고 다운로드를 자동으로 하되, updateAvailable, emit

, 그리고 다음 번들 또는 업데이트를 자동으로 설정하지 않습니다.

Live 업데이트가 없는 네이티브 빌드를 테스트하는 방법

Live 업데이트가 없는 네이티브 빌드를 테스트하는 방법 Live 업데이트가 없는 네이티브 빌드를 테스트하는 방법 Live 업데이트가 없는 네이티브 빌드를 테스트하는 방법에 대한 자세한 내용은 네이티브 버전, 채널 정책, 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;

그리고 autoUpdate: 'always', Capgo은 전면 전환 시마다 체크를 수행하고 다운로드가 완료된 경우에 즉시 업데이트를 적용합니다. 사용자가 앱을 활성화하고 있는 경우에도. periodCheckDelay 앱이 열려 있는 동안 반복적으로 실행되는 체크는 __CAPGO_KEEP_0__을 통해 즉시 적용 동작을 트리거할 수 있습니다.

참고하십시오. __CAPGO_KEEP_0__이 네이티브 구성인 경우 즉시 적용 모드는 추가적인 처리가 필요합니다. autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.

자동 다운로드 없이 적용하지 않음

자동 다운로드 없이 적용하지 않음

자동 다운로드를 원할 경우 Capgo가 업데이트를 자동으로 다운로드하고 적용하지 않도록 하려면 autoUpdate: 'onlyDownload':

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'onlyDownload',
},
},
};

이 모드에서는 플러그인이 updateAvailable 을 내보냅니다. 앱은 다운로드된 번들을 호출하거나 자신의 업데이트 알림을 표시할 때까지 기다릴 수 있습니다. CapacitorUpdater.set() 자동 스플래시 화면 처리

Automatic Splashscreen Handling

자동 스플래쉬 스크린 처리

Capgo은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래쉬 스크린을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능): autoSplashscreen 복사

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'always', // or 'atInstall'
autoSplashscreen: true, // Automatically hide splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false,
},
},
};

업데이트가 적용될 때 플러그인은 스플래쉬 스크린을 자동으로 숨깁니다 autoSplashscreen 업데이트가 필요하지 않으면 플러그인은 스플래쉬 스크린을 자동으로 숨깁니다

  • __CAPGO_KEEP_0__에서 이벤트를 수신하거나
  • 수동 스플래쉬 스크린 처리
  • 수동 스플래쉬 스크린 처리 appReady __CAPGO_KEEP_0__은 즉시 적용 모드 사용을 더 쉽게 하기 위해 스플래쉬 스크린을 자동으로 숨기는 옵션을 제공합니다 (버전 7.6.0부터 사용 가능): SplashScreen.hide()

__CAPGO_KEEP_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 이벤트를 처리하는 것 외에도, instant apply 모드에서 사용할 때는

설정을 추천합니다. 현재 URL 경로를 유지하여 앱이 업데이트로 재로드될 때 사용자가 앱 내 위치를 유지하고 혼란을 줄이는 데 도움이 됩니다. appReady instant apply 모드에서 keepUrlPathAfterReload 설정을 사용하지 않고 true 이벤트를 처리하지 않으면 사용자가 업데이트가 적용되는 동안 이전 버전을 잠시 보거나 초기 경로로 돌아가거나 화면이 깜빡이는 현상이 발생할 수 있습니다.

__CAPGO_KEEP_0__ appReady __CAPGO_KEEP_0__ keepUrlPathAfterReload __CAPGO_KEEP_0__

빠른 적용 모드를 사용하면 중요한 버그 수정 또는 보안 패치 배포에 유용할 수 있지만, 몇 가지 트레이드 오프가 있습니다:

  • 업데이트가 적용되는 동안 사용자는 스플래시 스크린을 적절하게 처리하지 않으면 짧은 깜빡임 또는 로딩 상태를 볼 수 있습니다 (이ITHER) autoSplashscreen 또는 수동 appReady 이벤트 처리)
  • 업데이트가 앱 상태 또는 UI를 수정하면 사용자는 세션 중간에 갑작스러운 변경을 볼 수 있습니다.
  • 앱의 사용자의 위치가 저장되지 않은 경우 keepUrlPathAfterReload 이미 설정되지 않은 경우 사용자는 혼란스럽게 될 수 있습니다.
  • 적절한 전환을 보장하기 위해 상태를 저장하고 복원하는 것을 신중하게 처리해야 합니다.

빠른 적용을 활성화하는 경우에 권장되는 사항은:

  • 가장 단순한 설정을 위해 autoSplashscreen: true 또는 사용자 정의 로직이 필요할 경우 수동으로 appReady 이벤트를 처리하는 것입니다.
  • 설정 keepUrlPathAfterReloadtrue 사용자의 위치를 앱 내에서 유지하기 위해 사용자 위치를 보존하는 데 사용됩니다.
  • 사용자 진행을 잃지 않도록 앱 상태를 필요에 따라 저장하고 복원합니다.
  • 앱의 업데이트 동작을 철저히 테스트하여 충격적인 전환, 잃어버린 상태, 또는 위치 변경이 발생하지 않도록 합니다.

대부분의 경우 기본 업데이트 동작이 빠르게 업데이트 제공하고 방해를 최소화하는 최적의 균형을 제공합니다. 그러나 특정 요구가 있는 앱의 경우 Capgo가 업데이트 적용 시기를 및 방법을 조정할 수 있는 유연성을 제공합니다.

업데이트 동작을 사용하여 실시간 업데이트 전달을 계획하고 __CAPGO_KEEP_0__ Live Updates와 연결합니다. 업데이트 동작 실시간 업데이트 Capgo Live Updates for the product workflow in Capgo Live Updates, 개요 개요에서 구현 세부 정보에 대해 기능 기능에서 구현 세부 정보에 대해 업데이트 유형 업데이트 유형에서 구현 세부 정보에 대해, 그리고 시작하기 시작하기에서 구현 세부 정보에 대해