콘텐츠로 건너뛰기

기능 및 설정

업데이터 플러그인 설정

자세한 내용은 Github Readme를 참조하세요

CapacitorUpdater는 다음 옵션으로 구성할 수 있습니다:

속성타입설명기본값버전
appReadyTimeoutnumber네이티브 플러그인이 업데이트를 ‘실패’로 간주하기 전에 대기할 밀리초 수를 설정합니다. Android와 iOS에서만 사용 가능10000 // (10초)
responseTimeoutnumber네이티브 플러그인이 API 타임아웃으로 간주하기 전에 대기할 밀리초 수를 설정합니다. Android와 iOS에서만 사용 가능20 // (20초)
autoDeleteFailedboolean플러그인이 실패한 번들을 자동으로 삭제할지 여부를 설정합니다. Android와 iOS에서만 사용 가능true
autoDeletePreviousboolean성공적인 업데이트 후 플러그인이 이전 번들을 자동으로 삭제할지 여부를 설정합니다. Android와 iOS에서만 사용 가능true
autoUpdateboolean플러그인이 업데이트 서버를 통한 자동 업데이트를 사용할지 여부를 설정합니다. Android와 iOS에서만 사용 가능true
resetWhenUpdateboolean새로운 네이티브 앱 번들이 기기에 설치될 때 이전에 다운로드한 번들을 자동으로 삭제합니다. Android와 iOS에서만 사용 가능true
updateUrlstring업데이트 확인이 전송되는 URL/엔드포인트를 설정합니다. Android와 iOS에서만 사용 가능https://plugincapgoapp/updates
channelUrlstring채널 작업을 위한 URL/엔드포인트를 설정합니다. Android와 iOS에서만 사용 가능https://plugincapgoapp/channel_self
statsUrlstring업데이트 통계가 전송되는 URL/엔드포인트를 설정합니다. Android와 iOS에서만 사용 가능. 통계 보고를 비활성화하려면 ""로 설정https://plugincapgoapp/stats
privateKeystring엔드-투-엔드 라이브 업데이트 암호화를 위한 개인 키를 설정합니다. Android와 iOS에서만 사용 가능. 버전 6.2.0에서 deprecated되었으며 버전 7.0.0에서 제거될 예정undefined
publicKeystring엔드-투-엔드 라이브 업데이트 암호화를 위한 공개 키를 설정합니다 (버전 2). Android와 iOS에서만 사용 가능undefined620
versionstring앱의 현재 버전을 설정합니다. 첫 업데이트 요청에 사용됩니다. 설정하지 않으면 플러그인이 네이티브 코드에서 버전을 가져옵니다. Android와 iOS에서만 사용 가능undefined41748
directUpdateboolean앱이 방금 업데이트/설치되었을 때 플러그인이 업데이트를 직접 설치하도록 합니다. 자동 업데이트 모드에서만 사용 가능. Android와 iOS에서만 사용 가능undefined510
periodCheckDelaynumber주기적 업데이트 확인의 지연 시간을 초 단위로 설정합니다. Android와 iOS에서만 사용 가능. 600초(10분) 미만으로 설정할 수 없음600 // (10분)
localS3boolean테스트 또는 자체 호스팅 업데이트 서버를 위해 CLI가 로컬 서버를 사용하도록 설정undefined41748
localHoststring테스트 또는 자체 호스팅 업데이트 서버를 위해 CLI가 로컬 서버를 사용하도록 설정undefined41748
localWebHoststring테스트 또는 자체 호스팅 업데이트 서버를 위해 CLI가 로컬 서버를 사용하도록 설정undefined41748
localSupastring테스트 또는 자체 호스팅 업데이트 서버를 위해 CLI가 로컬 서버를 사용하도록 설정undefined41748
localSupaAnonstring테스트를 위해 CLI가 로컬 서버를 사용하도록 설정undefined41748
localApistring테스트를 위해 CLI가 로컬 API를 사용하도록 설정undefined633
localApiFilesstring테스트를 위해 CLI가 로컬 파일 API를 사용하도록 설정undefined633
allowModifyUrlboolean플러그인이 JavaScript 측에서 updateUrl, statsUrl 및 channelUrl을 동적으로 수정할 수 있도록 허용false540
defaultChannelstring설정에서 앱의 기본 채널 설정undefined550
appIdstring앱의 설정에서 앱 ID를 구성합니다undefined600
keepUrlPathAfterReloadboolean리로드 후 URL 경로를 유지하도록 플러그인을 구성합니다 경고: 리로드가 트리거되면 ‘windowhistory’가 지워집니다false680

예시

capacitorconfigjson에서:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 1000 // (1초),
"responseTimeout": 10 // (10초),
"autoDeleteFailed": false,
"autoDeletePrevious": false,
"autoUpdate": false,
"resetWhenUpdate": false,
"updateUrl": https://examplecom/api/auto_update,
"channelUrl": https://examplecom/api/channel,
"statsUrl": https://examplecom/api/stats,
"privateKey": undefined,
"publicKey": undefined,
"version": undefined,
"directUpdate": undefined,
"periodCheckDelay": undefined,
"localS3": undefined,
"localHost": undefined,
"localWebHost": undefined,
"localSupa": undefined,
"localSupaAnon": undefined,
"localApi": undefined,
"localApiFiles": undefined,
"allowModifyUrl": undefined,
"defaultChannel": undefined,
"appId": undefined,
"keepUrlPathAfterReload": undefined
}
}
}

capacitorconfigts에서:

/// <reference types="@capgo/capacitor-updater" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
appReadyTimeout: 1000 // (1초),
responseTimeout: 10 // (10초),
autoDeleteFailed: false,
autoDeletePrevious: false,
autoUpdate: false,
resetWhenUpdate: false,
updateUrl: https://examplecom/api/auto_update,
channelUrl: https://examplecom/api/channel,
statsUrl: https://examplecom/api/stats,
privateKey: undefined,
publicKey: undefined,
version: undefined,
directUpdate: undefined,
periodCheckDelay: undefined,
localS3: undefined,
localHost: undefined,
localWebHost: undefined,
localSupa: undefined,
localSupaAnon: undefined,
localApi: undefined,
localApiFiles: undefined,
allowModifyUrl: undefined,
defaultChannel: undefined,
appId: undefined,
keepUrlPathAfterReload: undefined,
},
},
};
export default config;

메서드

notifyAppReady()

notifyAppReady() => Promise<AppReadyResult>

현재 번들이 제대로 작동하고 있다는 것을 Capacitor Updater에 알립니다 (이 메서드가 모든 앱 실행 시 호출되지 않으면 롤백이 발생합니다) 기본적으로 이 메서드는 앱 실행 후 처음 10초 내에 호출되어야 하며, 그렇지 않으면 롤백이 발생합니다 이 동작은 {@link appReadyTimeout}으로 변경할 수 있습니다

반환: Promise<AppReadyResult>

setUpdateUrl()

setUpdateUrl(options: UpdateUrl) => Promise<void>

앱의 업데이트 URL을 설정합니다. 이는 업데이트를 확인하는 데 사용됩니다

매개변수타입설명
optionsUpdateUrl업데이트 확인에 사용할 URL을 포함합니다

버전: 540부터

setStatsUrl()

setStatsUrl(options: StatsUrl) => Promise<void>

앱의 통계 URL을 설정합니다. 이는 통계를 전송하는 데 사용됩니다. 빈 문자열을 전달하면 통계 수집이 비활성화됩니다

매개변수타입설명
optionsStatsUrl통계 전송에 사용할 URL을 포함합니다

버전: 540부터

setChannelUrl()

setChannelUrl(options: ChannelUrl) => Promise<void>

앱의 채널 URL을 설정합니다. 이는 채널을 설정하는 데 사용됩니다

매개변수타입설명
optionsChannelUrl채널 설정에 사용할 URL을 포함합니다

버전: 540부터

download()

download(options: DownloadOptions) => Promise<BundleInfo>

제공된 URL에서 새 번들을 다운로드합니다. 이는 내부에 파일이 있는 zip 파일이거나 모든 파일이 포함된 고유 ID가 있는 zip 파일이어야 합니다

매개변수타입설명
optionsDownloadOptions새 번들 zip을 다운로드하기 위한 {@link DownloadOptions}

반환: Promise<BundleInfo>

next()

next(options: BundleId) => Promise<BundleInfo>

앱이 리로드될 때 사용할 다음 번들을 설정합니다| Param | Type | Description | | ------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | options | BundleId | 다음 앱 실행 시 설정할 다음 번들의 ID를 포함합니다 {@link BundleInfoid} |

Returns: Promise<BundleInfo>


set()

set(options: BundleId) => Promise<void>

현재 번들을 설정하고 즉시 앱을 리로드합니다

ParamTypeDescription
optionsBundleId현재 설정할 새 번들 ID를 포함하는 {@link BundleId} 객체

delete()

delete(options: BundleId) => Promise<void>

네이티브 앱 저장소에서 지정된 번들을 삭제합니다. {@link list}와 함께 저장된 번들 ID를 가져오는 데 사용하세요.

ParamTypeDescription
optionsBundleId삭제할 번들의 ID를 포함하는 {@link BundleId} 객체 (참고: 이것은 버전 이름이 아닌 번들 ID입니다)

list()

list(options?: ListOptions | undefined) => Promise<BundleListResult>

앱에 로컬로 다운로드된 모든 번들을 가져옵니다

ParamTypeDescription
optionsListOptions번들을 나열하기 위한 {@link ListOptions}

Returns: Promise<BundleListResult>


reset()

reset(options?: ResetOptions | undefined) => Promise<void>

앱을 builtin 번들(Apple App Store / Google Play Store에 전송된 것) 또는 마지막으로 성공적으로 로드된 번들로 리셋합니다

ParamTypeDescription
optionsResetOptions{@link ResetOptionstoLastSuccessful}을 포함하며, true는 기본 제공 번들로 리셋하고 false는 마지막으로 성공적으로 로드된 번들로 리셋합니다

current()

current() => Promise<CurrentBundleResult>

현재 번들을 가져옵니다. 설정된 것이 없으면 builtin을 반환합니다. currentNative는 기기에 설치된 원본 번들입니다

Returns: Promise<CurrentBundleResult>


reload()

reload() => Promise<void>

뷰를 리로드합니다


setMultiDelay()

setMultiDelay(options: MultiDelayConditions) => Promise<void>

플러그인이 업데이트를 지연시키는 데 사용할 조건이 포함된 {@link DelayCondition} 배열을 설정합니다 모든 조건이 충족되면 업데이트 프로세스가 다시 평소대로 시작되므로 앱을 백그라운드로 전환하거나 종료한 후에 업데이트가 설치됩니다 date 종류의 경우 값은 iso8601 날짜 문자열이어야 합니다 background 종류의 경우 값은 밀리초 단위의 숫자여야 합니다 nativeVersion 종류의 경우 값은 버전 번호여야 합니다 kill 종류의 경우 값이 사용되지 않습니다 이 함수는 kill 옵션이 다른 옵션처럼 다음 백그라운드 후가 아닌 첫 번째 종료 후에 업데이트를 트리거하는 일관되지 않은 동작을 보입니다. 이는 향후 주요 릴리스에서 수정될 예정입니다

ParamTypeDescription
optionsMultiDelayConditions설정할 조건 배열을 포함하는 {@link MultiDelayConditions}

Since: 430


cancelDelay()

cancelDelay() => Promise<void>

업데이트를 즉시 처리하기 위해 {@link DelayCondition}을 취소합니다

Since: 400


getLatest()

getLatest(options?: GetLatestOptions | undefined) => Promise<LatestVersion>

업데이트 URL에서 사용 가능한 최신 번들을 가져옵니다

ParamType
optionsGetLatestOptions

Returns: Promise<LatestVersion>

Since: 400


setChannel()

setChannel(options: SetChannelOptions) => Promise<ChannelRes>

이 기기의 채널을 설정합니다. 이 작업이 작동하려면 채널이 자체 할당을 허용해야 합니다 autoUpdate가 {@link PluginsConfig}에서 활성화된 경우 부팅 시 채널을 설정하는 데 이 메서드를 사용하지 마세요 이 메서드는 앱이 준비된 후에 채널을 설정하는 데 사용됩니다 이 메서드는 기기 ID를 채널에 연결하는 요청을 Capgo 백엔드로 보냅니다. Capgo는 채널 설정에 따라 수락하거나 거부할 수 있습니다

ParamTypeDescription
optionsSetChannelOptions설정할 채널인 {@link SetChannelOptions}

Returns: Promise<ChannelRes>

Since: 470


unsetChannel()

unsetChannel(options: UnsetChannelOptions) => Promise<void>

이 기기의 채널 설정을 해제합니다디바이스가 기본 채널로 돌아갑니다

ParamType
optionsUnsetChannelOptions

Since: 470


getChannel()

getChannel() => Promise<GetChannelRes>

이 디바이스의 채널을 가져옵니다

Returns: Promise<GetChannelRes>

Since: 480


setCustomId()

setCustomId(options: SetCustomIdOptions) => Promise<void>

이 디바이스에 대한 커스텀 ID를 설정합니다

ParamTypeDescription
optionsSetCustomIdOptions{@link SetCustomIdOptions} 설정할 customId입니다

Since: 490


getBuiltinVersion()

getBuiltinVersion() => Promise<BuiltinVersion>

네이티브 앱 버전 또는 config에 설정된 빌트인 버전을 가져옵니다

Returns: Promise<BuiltinVersion>

Since: 520


getDeviceId()

getDeviceId() => Promise<DeviceId>

디바이스를 식별하는데 사용되는 고유 ID를 가져옵니다(자동 업데이트 서버로 전송됨)

Returns: Promise<DeviceId>


getPluginVersion()

getPluginVersion() => Promise<PluginVersion>

네이티브 Capacitor Updater 플러그인 버전을 가져옵니다(자동 업데이트 서버로 전송됨)

Returns: Promise<PluginVersion>


isAutoUpdateEnabled()

isAutoUpdateEnabled() => Promise<AutoUpdateEnabled>

자동 업데이트 설정 상태를 가져옵니다

Returns: Promise<AutoUpdateEnabled>


removeAllListeners()

removeAllListeners() => Promise<void>

이 플러그인의 모든 리스너를 제거합니다

Since: 100


addListener(‘download’, )

addListener(eventName: 'download', listenerFunc: (state: DownloadEvent) => void) => Promise<PluginListenerHandle>

앱에서 번들 다운로드 이벤트를 수신합니다. 다운로드가 시작되고, 다운로드 중이며, 완료되었을 때 발생합니다

ParamType
eventName’download’
listenerFunc(state: DownloadEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 2011


addListener(‘noNeedUpdate’, )

addListener(eventName: 'noNeedUpdate', listenerFunc: (state: NoNeedEvent) => void) => Promise<PluginListenerHandle>

업데이트가 필요 없음 이벤트를 수신합니다. 앱이 실행될 때마다 강제로 확인하고 싶을 때 유용합니다

ParamType
eventName’noNeedUpdate’
listenerFunc(state: NoNeedEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘updateAvailable’, )

addListener(eventName: 'updateAvailable', listenerFunc: (state: UpdateAvailableEvent) => void) => Promise<PluginListenerHandle>

사용 가능한 업데이트 이벤트를 수신합니다. 앱이 실행될 때마다 강제로 확인하고 싶을 때 유용합니다

ParamType
eventName’updateAvailable’
listenerFunc(state: UpdateAvailableEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘downloadComplete’, )

addListener(eventName: 'downloadComplete', listenerFunc: (state: DownloadCompleteEvent) => void) => Promise<PluginListenerHandle>

다운로드 완료 이벤트를 수신합니다

ParamType
eventName’downloadComplete’
listenerFunc(state: DownloadCompleteEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘majorAvailable’, )

addListener(eventName: 'majorAvailable', listenerFunc: (state: MajorAvailableEvent) => void) => Promise<PluginListenerHandle>

앱에서 메이저 업데이트 이벤트를 수신합니다. disableAutoUpdateBreaking 설정에 의해 메이저 업데이트가 차단된 경우를 알려줍니다

ParamType
eventName’majorAvailable’
listenerFunc(state: MajorAvailableEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 230


addListener(‘updateFailed’, )

addListener(eventName: 'updateFailed', listenerFunc: (state: UpdateFailedEvent) => void) => Promise<PluginListenerHandle>

업데이트 실패 이벤트를 수신합니다. 다음 앱 시작 시 업데이트 설치가 실패했을 때를 알려줍니다

ParamType
eventName’updateFailed’
listenerFunc(state: UpdateFailedEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 230


addListener(‘downloadFailed’,```typescript

addListener(eventName: ‘downloadFailed’, listenerFunc: (state: DownloadFailedEvent) => void) => Promise

앱에서 다운로드 실패 이벤트를 수신하여 번들 다운로드가 실패했을 때 알려줍니다
| Param | Type |
| ------------------ | ----------------------------------------------------------------------- |
| **`eventName`** | <code>'downloadFailed'</code> |
| **`listenerFunc`** | <code>(state: <a href="#downloadfailedevent">DownloadFailedEvent</a>) =&gt; void</code> |
**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>
**Since:** 400
--------------------
## addListener('appReloaded', )
```typescript
addListener(eventName: 'appReloaded', listenerFunc: () => void) => Promise<PluginListenerHandle>

앱의 리로드 이벤트를 수신하여 리로드가 발생했을 때 알려줍니다

ParamType
eventName’appReloaded’
listenerFunc() => void

Returns: Promise<PluginListenerHandle>

Since: 430


addListener(‘appReady’, )

addListener(eventName: 'appReady', listenerFunc: (state: AppReadyEvent) => void) => Promise<PluginListenerHandle>

앱의 준비 완료 이벤트를 수신하여 앱을 사용할 준비가 되었을 때 알려줍니다

ParamType
eventName’appReady’
listenerFunc(state: AppReadyEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 510


isAutoUpdateAvailable()

isAutoUpdateAvailable() => Promise<AutoUpdateAvailable>

자동 업데이트가 사용 가능한지 확인합니다 (serverUrl에 의해 비활성화되지 않음)

Returns: Promise<AutoUpdateAvailable>


getNextBundle()

getNextBundle() => Promise<BundleInfo | null>

앱이 리로드될 때 사용될 다음 번들을 가져옵니다 다음 번들이 설정되지 않은 경우 null을 반환합니다

Returns: Promise<BundleInfo | null>

Since: 680


Interfaces

AppReadyResult

PropType
bundleBundleInfo

BundleInfo

PropType
idstring
versionstring
downloadedstring
checksumstring
statusBundleStatus

UpdateUrl

PropType
urlstring

StatsUrl

PropType
urlstring

ChannelUrl

PropType
urlstring

DownloadOptions

PropTypeDescriptionDefaultSince
urlstring다운로드할 번들 zip 파일(예: distzip)의 URL(Amazon S3, GitHub 태그, 번들을 호스팅한 다른 위치 등의 URL일 수 있습니다)
versionstring이 번들/버전의 버전 코드/이름
sessionKeystring업데이트를 위한 세션 키undefined400
checksumstring업데이트를 위한 체크섬undefined400

BundleId

PropType
idstring

BundleListResult

PropType
bundlesBundleInfo[]

ListOptions

PropTypeDescriptionDefaultSince
rawboolean원시 번들 목록 또는 매니페스트를 반환할지 여부. true인 경우 디스크의 파일 대신 내부 데이터베이스를 읽으려고 시도합니다false6140

ResetOptions

PropType
toLastSuccessfulboolean

CurrentBundleResult

PropType
bundleBundleInfo
nativestring

MultiDelayConditions

PropType
delayConditionsDelayCondition[]

DelayCondition

PropTypeDescription
kindDelayUntilNextsetMultiDelay에서 지연 조건 설정
valuestring

LatestVersion

PropTypeDescriptionSince
versionstringgetLatest 메서드의 결과40
majorboolean
messagestring
sessionKeystring
errorstring
oldstring
urlstring
manifestManifestEntry[]61

ManifestEntry

PropType
file_namestring | null
file_hashstring | null
download_urlstring | null

GetLatestOptions

PropTypeDescriptionDefaultSince
channelstring최신 버전을 받을 채널입니다. 이 작업을 위해서는 채널이 ‘self_assign’을 허용해야 합니다undefined680

ChannelRes

PropTypeDescriptionSince
statusstring설정된 채널의 현재 상태470
errorstring
messagestring

SetChannelOptions

PropType
channelstring
triggerAutoUpdateboolean

UnsetChannelOptions

PropType
triggerAutoUpdateboolean

GetChannelRes

PropTypeDescriptionSince
channelstring가져온 채널의 현재 상태480
errorstring
messagestring
statusstring
allowSetboolean

SetCustomIdOptions

PropType
customIdstring

BuiltinVersion

PropType
versionstring

DeviceId

PropType
deviceIdstring

PluginVersion

PropType
versionstring

AutoUpdateEnabled

PropType
enabledboolean

PluginListenerHandle

PropType
remove() => Promise<void>

DownloadEvent

PropTypeDescriptionSince
percentnumber다운로드의 현재 상태, 0에서 100 사이400
bundleBundleInfo

NoNeedEvent

PropTypeDescriptionSince
bundleBundleInfo다운로드의 현재 상태, 0에서 100 사이400

UpdateAvailableEvent

PropTypeDescriptionSince
bundleBundleInfo다운로드의 현재 상태, 0에서 100 사이400

DownloadCompleteEvent

PropTypeDescriptionSince
bundleBundleInfo새로운 업데이트가 가능할 때 발생400

MajorAvailableEvent

PropTypeDescriptionSince
versionstring새로운 메이저 번들이 가능할 때 발생400

UpdateFailedEvent

PropTypeDescriptionSince
bundleBundleInfo업데이트 설치에 실패했을 때 발생400

DownloadFailedEvent

PropTypeDescriptionSince
versionstring다운로드 실패 시 발생400

AppReadyEvent

PropTypeDescriptionSince
bundleBundleInfo앱이 사용 준비가 되었을 때 발생520
statusstring

AutoUpdateAvailable

PropType
availableboolean

Type Aliases

BundleStatus

‘success’ | ‘error’ | ‘pending’ | ‘downloading’

DelayUntilNext

‘background’ | ‘kill’ | ‘nativeVersion’ | ‘date’