콘텐츠로 건너뛰기

自動アップデート

이 문서에서는 자동 업데이트 서버를 실행하는 방법을 설명합니다.

번들 제공

번들이 HTTPS를 통해 제공되고 서버에 앱이 업데이트를 다운로드할 수 있도록 적절한 CORS 헤더가 설정되어 있는지 확인하세요. 예시: https://myservercom/app/updates/updatesjson

번들 제공에 익숙하지 않다면 Capgo Cloud를 사용해보거나 다음 예제를 참조하시기 바랍니다:

구성

capacitorconfigjsonupdateUrl을 추가하세요

{
"plugins": {
"CapacitorUpdater": {
"updateUrl": "https://myservercom/app/updates/updatesjson",
}
}
}

업데이트 API

플러그인은 앱이 열릴 때마다 다음 본문과 함께 API에 POST 요청을 보냅니다:

interface AppInfos {
"platform": "ios" | "android",
"device_id": "UUID_of_device_unique_by_install",
"app_id": "APPID_FROM_CAPACITOR_CONFIG",
"custom_id": "your_custom_id_set_on_runtime",
"plugin_version": "PLUGIN_VERSION",
"version_build": "VERSION_NUMBER_FROM_NATIVE_CODE",
"version_code": "VERSION_CODE_FROM_NATIVE_CODE",
"version_name": "LAST_DOWNLOADER_VERSION" | "builtin"
"version_os": "VERSION_OF_SYSYEM_OS",
"is_emulator": boolean,
"is_prod": boolean,
}

서버 API는 업데이트가 필요한 경우 capacitor-updater 플러그인에 다음과 같은 JSON 데이터로 응답해야 합니다:

{
"version": "123",
"url": "https://myservercom/app/updates/my-new-app-200zip"
}

자동 업데이트 모드에서 서버는 버전을 비교하고 올바른 버전을 반환해야 합니다. URL 키가 있으면 플러그인이 다운로드 프로세스를 시작합니다.

“message”와 “error” 키를 추가하면 버전이 설정되지 않고 대신 로그에 메시지가 표시됩니다.

version 키는 semver 형식이어야 합니다.

zip 파일은 루트에 indexhtml 파일이 있거나 루트에 indexhtml이 포함된 폴더가 하나만 있어야 합니다.

CLI 명령을 사용하여 번들을 압축할 수 있습니다:

서버에서 제공할 파일로 번들 생성하기
npx @capgo/cli bundle zip --path [/path/to/my/bundle]