업데이트 동작
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 지시를 복사하세요.
Capgo 앱에 대한 업데이트를 릴리스할 때, 사용자들이 가능한 한 빨리 업데이트를 받기를 원할 것입니다. 그러나 사용자 경험을 방해하지 않도록 다운로드 또는 앱을 다시 시작하도록 강제하지 않으려 할 것입니다.
Capgo의 업데이트 동작은 업데이트를 빠르게 제공하는 동시에 사용자 경험을 최소화하는 균형을 이룹니다.
기본 업데이트 흐름
기본 업데이트 흐름기본적으로 Capgo는 앱 업데이트를 어떻게 처리하는지 보겠습니다.
-
앱이 전면에 표시될 때, Capgo 플러그인은 새로운 업데이트가 있는지 확인합니다. 앱이 열려 있는 동안, 반복 타이머를 통한 반복적인 확인도 수행합니다.
periodCheckDelay(기본 10분). -
업데이트가 발견되면, __CAPGO_KEEP_0__는 사용자가 현재 앱 버전을 사용하는 동안 배경에서 다운로드를 수행합니다.
-
다운로드가 완료되면, Capgo는 사용자가 앱을 백그라운드에 보내기를 기다립니다.
-
사용자가 앱을 다시 전면에 표시할 때, 업데이트된 버전으로 실행됩니다.
이 흐름은 사용자가 항상 최신 버전의 앱을 실행하는 것을 보장하며, 업데이트 알림이나 다운로드를 기다리도록 강제되지 않습니다.
이 방법을 사용하는 이유
Section titled “이 방법을 사용하는 이유”배경 또는 종료 이벤트에서 업데이트를 적용하는 것은 사용자 경험에 몇 가지 주요 이점을 제공합니다.
-
사용자는 세션 중에 업데이트 알림이나 다운로드를 기다리도록 강제되지 않습니다.
-
세션 사이에 업데이트가 무방비적으로 적용되므로 앱을 시작할 때 항상 최신 상태의 경험을 제공합니다.
-
활발한 사용자에게 업데이트를 자주 제공할 수 있습니다. 업데이트를 적용하는 동안 사용자가 앱을 백그라운드에 보내고 다시 앱을 열면 사용자가 저장하지 않은 상태를 잃을 수 있습니다.
Why This Approach?
To mitigate this, we recommend:
-
앱이 다시 시작될 때 부드럽게 상태를 복원하는 것을 포함하여 자주 상태를 저장하는 것.
-
앱 상태의 큰 부분을 수정하는 매우 빈번한 업데이트를 피하는 것.
-
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: __targetLanguage__의 업데이트를 적용하기 전에 특정 날짜/시간을 기다려보세요.background: 앱이 백그라운드 상태가 되면 최소 지속 시간을 기다려야 업데이트를 적용할 수 있습니다.nativeVersion: 최소 버전 이상의 네이티브 바이너리가 설치되기 전에 업데이트를 적용하기 전에 기다려보세요.kill: 앱이 종료되기 전에 업데이트를 적용하기 전에 기다려보세요.
업데이트를 설치할 때 조건을 혼합하여 정확히 제어할 수 있습니다.
Capgo autoUpdate 정책을 Capacitor 설정에서 설정합니다.
autoUpdate 파일에 __CAPGO_KEEP_0__으로 설정되어 있습니다. JavaScript에서 설정하지 마세요. 다음의 값을 지원합니다: capacitor.config.ts file, not in JavaScript code. It supports these values:
false: 자동 업데이트 확인을 비활성화합니다'off'또는true(기본값): 각 전면 검사 시 자동으로 다운로드하고 확인한 다음 앱이 배경으로 이동할 때 업데이트 적용'atBackground': 새로운 설치 또는 네이티브 앱 스토어 업데이트 후 즉시 적용하십시오; 그렇지 않으면'atInstall'동작"atBackground"(기본값): 전면 검사 시 자동으로 다운로드하고 확인한 다음 앱이 배경으로 이동할 때 업데이트 적용'onLaunch': __CAPGO_KEEP_0__을 즉시 적용할 때만 앱이 백그라운드에서 죽은 상태에서 전면으로 가져와질 때 (냉장 시작). 그 첫 번째 확인 후, 자동으로 적용하지 말고"atBackground"behavior'always': 전면 전환마다 확인하고 업데이트가 있는 경우 즉시 적용'onlyDownload': 자동으로 확인하고 다운로드 하며,updateAvailable및 다음 번들 또는 업데이트를 자동으로 적용하지 않습니다.
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은 사용자가 앱을 사용 중인 경우에도 다운로드가 완료되면 즉시 업데이트를 적용하는 데 사용됩니다. Capgo이 정기적으로 체크하는 경우에도 foreground 전환 시 Capgo이 체크하는 것과 동일한 즉시 적용 동작을 트리거할 수 있습니다. periodCheckDelay __CAPGO_KEEP_0__은 native configuration이기 때문에 JavaScript __CAPGO_KEEP_0__에서 instant apply 모드가 필요로 하는 추가 처리가 필요합니다.
주의 autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.
자동으로 다운로드하는 동안 자동으로 적용하지 않기
자동으로 다운로드하고 자동으로 적용하지 않는 __CAPGO_KEEP_0__을 사용하려면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() 앱은 업데이트 시기를 결정할 수 있고,
자신의 업데이트 알림을 표시할 수 있습니다.
자동 스플래시 스크린 처리To make instant apply modes easier to use, Capgo provides an autoSplashscreen 인스턴트 적용 모드를 더 쉽게 사용하기 위해,
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};옵션을 제공합니다. autoSplashscreen 복사
- 이 옵션이 활성화된 경우:
- The plugin automatically hides the splash screen when no update is needed.
- You don’t need to manually listen for __CAPGO_KEEP_0__ or call __CAPGO_KEEP_1__.
appReady__CAPGO_KEEP_2__ Splashscreen HandlingSplashScreen.hide()
Section titled “__CAPGO_KEEP_2__ Splashscreen Handling”
If you prefer manual control or need custom logic, you can disable __CAPGO_KEEP_3__ and handle it yourself:Copy to clipboard autoSplashscreen The __CAPGO_KEEP_4__ fires once the app has finished initializing and applying any pending updates. This is the point at which it’s safe to show your app’s UI, as it ensures the user will see the latest version.
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();__CAPGO_KEEP_5__ appReady __CAPGO_KEEP_6__
If you prefer manual control or need custom logic, you can disable __CAPGO_KEEP_3__ and handle it yourself: __CAPGO_KEEP_7__ appReady Copy to clipboard __CAPGO_KEEP_8__ keepUrlPathAfterReload __CAPGO_KEEP_0__을 사용하여 true __CAPGO_KEEP_0__을 사용할 때 즉시 적용 모드를 사용하면 현재 URL 경로가 업데이트로 인해 앱이 다시 로드될 때 유지됩니다. 사용자가 앱 내 위치를 유지하고 혼란을 줄이는 데 도움이 됩니다.
__CAPGO_KEEP_0__을 처리하지 않으면 사용자가 appReady 를 설정하지 않으면 사용자가 앱의 초기 경로로 돌아가거나 업데이트가 적용되는 동안 깜빡임을 보거나 업데이트가 적용되는 동안 로딩 상태를 보게 됩니다. keepUrlPathAfterReload 즉시 적용 모드를 사용하는 것은 중요한 버그 수정 또는 보안 패치를 제공하는 데 유용할 수 있지만 몇 가지 트레이드 오프가 있습니다.
__CAPGO_KEEP_0__을 처리하지 않으면 사용자가 업데이트가 적용되는 동안 깜빡임이나 로딩 상태를 보게 됩니다.
- __CAPGO_KEEP_0__을 사용하여 스플래시 스크린을 처리하지 않으면 업데이트가 적용되는 동안 사용자가 업데이트가 적용되는 동안 깜빡임이나 로딩 상태를 보게 됩니다.
autoSplashscreen업데이트가 앱 상태나 UI를 변경하면 사용자가 세션 중에 갑작스러운 변경을 보게 됩니다.appReady__CAPGO_KEEP_0__을 설정하지 않으면 사용자의 앱 내 위치가 손실되고 사용자가 혼란을 느낄 수 있습니다. - __CAPGO_KEEP_0__을 사용하여
- __CAPGO_KEEP_0__을 사용하여
keepUrlPathAfterReload__CAPGO_KEEP_0__을 사용하여 - 사용자 경험을 최적화하기 위해 상태를 저장하고 복원하는 것을 신중하게 처리해야 합니다.
__CAPGO_KEEP_0__을 활성화하는 경우, 다음을 권장합니다:
- 가장 간단한 설정을 위해
autoSplashscreen: true를 사용하거나, 사용자 지정 로직이 필요할 경우appReady를 수동으로 처리합니다. - 사용자가 앱 내 위치를 유지하기 위해
keepUrlPathAfterReload를true로 설정합니다. - 사용자 진행을 잃지 않고 상태가 유지되는지 확인하기 위해 앱의 업데이트 동작을 철저히 테스트합니다.
- 업데이트 동작이 충격적인 전환, 상태가 손실되는지, 사용자 위치가 혼란스럽게 변경되는지 확인하기 위해.
In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.
하지만 특정 요구 사항이 있는 앱의 경우, __CAPGO_KEEP_0__은 업데이트 시기를 및 방법을 커스터마이즈할 수 있는 유연성을 제공합니다.
__CAPGO_KEEP_0__ Live Updates를 계속해서 Update Behavior에서 사용하는 방법__CAPGO_KEEP_0__ Live Updates를 사용 중이라면 Update Behavior __CAPGO_KEEP_0__ Live Updates와 연결하세요. Capgo Live Updates Capgo Live Updates의 제품 워크플로에서 __CAPGO_KEEP_0__ Live Updates __CAPGO_KEEP_0__ Live Updates의 구현 세부 정보 __CAPGO_KEEP_0__ Live Updates __CAPGO_KEEP_0__ Live Updates의 구현 세부 정보 __CAPGO_KEEP_0__ Live Updates __CAPGO_KEEP_0__ Live Updates의 구현 세부 정보 Getting Started Getting Started의 구현 세부 정보를 위해.