Electron Updater API 참조
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 명령어를 복사하세요.
이 페이지에서는 Electron Updater의 모든 사용 가능한 메서드, 이벤트 및 구성 옵션을 문서화합니다.
핵심 메서드
“핵심 메서드”라는 제목을 가진 섹션notifyAppReady()
notifyAppReady() 함수 호출앱 시작 시마다 호출해야 함. bundle이 성공적으로 로드되었는지 확인하고 자동 롤백을 방지합니다.
await updater.notifyAppReady();download(options)
다운로드(옵션)URL에서 bundle을 다운로드합니다.
const bundle = await updater.download({ url: 'https://example.com/bundle.zip', version: '1.0.1', checksum: 'sha256-hash', // Optional but recommended sessionKey: '...', // For encrypted bundles});__CAPGO_KEEP_0__:
| __CAPGO_KEEP_1__ | __CAPGO_KEEP_2__ | __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ |
|---|---|---|---|
url | __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
version | __CAPGO_KEEP_8__ | __CAPGO_KEEP_9__ | __CAPGO_KEEP_10__ |
checksum | string | No | SHA256 체크섬을 사용하여 검증 |
sessionKey | string | No | 암호화된 배포본에 대한 세션 키 |
Returns: BundleInfo object with id, version, status
다음 옵션을 사용하여
Section titled “다음 옵션을 사용하여”다음 앱 재시작 시 로드될 배포본을 큐에 추가합니다.
await updater.next({ id: 'bundle-id' });__CAPGO_KEEP_0__
| __CAPGO_KEEP_1__ | __CAPGO_KEEP_2__ | __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ |
|---|---|---|---|
id | __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
__CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_10__
await updater.set({ id: 'bundle-id' });__CAPGO_KEEP_0__
| __CAPGO_KEEP_1__ | __CAPGO_KEEP_2__ | __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ |
|---|---|---|---|
id | __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
__CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_10__
await updater.reload();__CAPGO_KEEP_0__
__CAPGO_KEEP_1____CAPGO_KEEP_2__
await updater.delete({ id: 'bundle-id' });__CAPGO_KEEP_4__
| __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ | __CAPGO_KEEP_8__ |
|---|---|---|---|
id | __CAPGO_KEEP_9__ | __CAPGO_KEEP_10__ | __CAPGO_KEEP_11__ |
reset(options)
선택 항목: "reset(options)"빌트인 버전 또는 마지막 성공적인 배포로 리셋합니다.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });매개 변수:
| 옵션 | 타입 | 필수 | 설명 |
|---|---|---|---|
toLastSuccessful | boolean | 아니요 | true일 경우 마지막 성공적인 배포로 리셋합니다. |
Bundle Information
Bundle 정보current()
현재 버전()현재 Bundle과 Native 버전에 대한 정보를 가져옵니다.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
선택 항목 목록다운로드 된 모든 Bundle 목록을 가져옵니다.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
다음 Bundle()다음 재시작 시 배치될 업데이트를 확인하세요.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
getFailedUpdate()실패한 업데이트에 대한 정보를 확인하세요. (롤백을 디버깅하는 데 유용합니다.)
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
getBuiltinVersion()앱 바이너리와 함께 배포된 버전을 확인하세요.
const version = await updater.getBuiltinVersion();// '1.0.0'업데이트 확인
업데이트 확인최신 버전을 확인하기 위해 서버에 요청합니다.
getLatest(options)최신 버전을 확인하기 위해 서버에 요청합니다.
const latest = await updater.getLatest();
if (latest.url && !latest.error) { // Update available console.log('New version:', latest.version); console.log('Download URL:', latest.url);} else if (latest.error) { console.error('Error checking updates:', latest.error);}반환:
| 속성 | 타입 | 설명 |
|---|---|---|
url | 문자열 | 다운로드 URL (업데이트가 없으면 빈 문자열) |
version | 문자열 | 업데이트 가능 버전 |
checksum | __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ |
sessionKey | __CAPGO_KEEP_0__ | __CAPGO_KEEP_2__ |
error | __CAPGO_KEEP_3__ | __CAPGO_KEEP_3__ |
message | __CAPGO_KEEP_4__ | __CAPGO_KEEP_5__ |
__CAPGO_KEEP_6__
__CAPGO_KEEP_7____CAPGO_KEEP_8__
__CAPGO_KEEP_9____CAPGO_KEEP_0__을 특정 채널에 할당합니다.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
__CAPGO_KEEP_2__ 제목: unsetChannel(options)채널 할당을 해제하고 기본값을 사용합니다.
await updater.unsetChannel();getChannel()
__CAPGO_KEEP_3__ 제목: getChannel()현재 채널 할당을 가져옵니다.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
__CAPGO_KEEP_4__ 제목: listChannels()이 앱의 모든 사용 가능한 채널을 표시합니다.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']다운로드 업데이트가 적용되는 시기를 제어합니다.
setMultiDelay(options) 제목다운로드 업데이트가 적용되는 시기를 제어합니다.
setMultiDelay(options) 제목
업데이트가 적용되기 전에 충족해야 하는 조건을 설정합니다.클립보드에 복사
// Wait for app to be backgroundedawait updater.setMultiDelay({ delayConditions: [{ kind: 'background' }]});
// Wait until specific dateawait updater.setMultiDelay({ delayConditions: [{ kind: 'date', value: '2024-12-25T00:00:00Z' }]});
// Wait for app to be killed and restartedawait updater.setMultiDelay({ delayConditions: [{ kind: 'kill' }]});
// Multiple conditions (all must be met)await updater.setMultiDelay({ delayConditions: [ { kind: 'background' }, { kind: 'date', value: '2024-12-25T00:00:00Z' } ]});종류
| 값 | 값 | 설명 |
|---|---|---|
background | __CAPGO_KEEP_0__ | 앱이 백그라운드에 들어가기를 기다립니다. |
kill | - | 앱이 죽고 다시 시작될 때까지 기다립니다. |
date | ISO 날짜 문자열 | 특정 날짜/시간까지 기다립니다. |
nativeVersion | 버전 문자열 | 네이티브 앱 업데이트를 기다립니다. |
cancelDelay()
cancelDelay()모든 지연 조건을 취소하고 다음 체크 시 즉시 업데이트를 적용합니다.
await updater.cancelDelay();__CAPGO_KEEP_0__
__CAPGO_KEEP_1____CAPGO_KEEP_2__
__CAPGO_KEEP_3____CAPGO_KEEP_4__
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'__CAPGO_KEEP_6__
__CAPGO_KEEP_7____CAPGO_KEEP_8__
await updater.setCustomId({ customId: 'user-123' });__CAPGO_KEEP_10__
__CAPGO_KEEP_11__setUpdateUrl(options)
setUpdateUrl(options) 제목런타임에 업데이트서버 URL을 변경합니다.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
setStatsUrl(options) 제목통계 보고서 URL을 변경합니다.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });__CAPGO_KEEP_0__
__CAPGO_KEEP_1____CAPGO_KEEP_2__
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });__CAPGO_KEEP_4__
__CAPGO_KEEP_5____CAPGO_KEEP_6__
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
getAppId()현재 App ID를 가져옵니다.
const appId = await updater.getAppId();Debug
DebugsetDebugMenu(options)
Debug 메뉴를 활성화/비활성화합니다.복사
await updater.setDebugMenu({ enabled: true });Debug 메뉴 활성화 여부를 확인합니다.
Section titled “isDebugMenuEnabled()”debug 메뉴가 활성화되어 있는지 확인합니다.
const enabled = await updater.isDebugMenuEnabled();이벤트
이벤트업데이트 이벤트를 사용하여 addListener:
updater.addListener('eventName', (event) => { // Handle event});사용 가능한 이벤트
사용 가능한 이벤트| 이벤트 | 파이로드 | 설명 |
|---|---|---|
download | { percent, status } | 다운로드 진행 상황 업데이트 |
updateAvailable | { bundle } | 새로운 업데이트가 있습니다. |
noNeedUpdate | { message } | 이미 최신 버전입니다. |
downloadComplete | { bundle } | 다운로드가 성공적으로 완료되었습니다. |
downloadFailed | { bundle, error } | 다운로드가 실패했습니다. |
breakingAvailable | { bundle } | 비호환 업데이트가 있습니다 (자연어 업데이트가 필요합니다). |
updateFailed | { bundle, reason } | 업데이트 설치가 실패했습니다. |
appReloaded | {} | 앱이 다시 로드되었습니다. |
appReady | {} | notifyAppReady() __CAPGO_KEEP_0__이 호출되었습니다. |
예시: 전체 이벤트 처리
__CAPGO_KEEP_0__ 제목: 예시: 전체 이벤트 처리// Progress trackingupdater.addListener('download', (event) => { updateProgressBar(event.percent);});
// Update available notificationupdater.addListener('updateAvailable', (event) => { showNotification(`Update ${event.bundle.version} available!`);});
// Handle completionupdater.addListener('downloadComplete', async (event) => { // Queue for next restart await updater.next({ id: event.bundle.id }); showNotification('Update will apply on next restart');});
// Handle failuresupdater.addListener('updateFailed', (event) => { console.error('Update failed:', event.reason); reportError(event);});__CAPGO_KEEP_0__ 옵션
생성자 옵션생성자 옵션을 위한 전체 구성 옵션 ElectronUpdater:
const updater = new ElectronUpdater({ // Required appId: 'com.example.app',
// Version override version: '1.0.0', // Override builtin version detection
// Server URLs updateUrl: 'https://plugin.capgo.app/updates', channelUrl: 'https://plugin.capgo.app/channel_self', statsUrl: 'https://plugin.capgo.app/stats',
// Behavior autoUpdate: true, // Enable automatic update checks appReadyTimeout: 10000, // Milliseconds before rollback (default: 10000) autoDeleteFailed: true, // Auto-delete failed bundles autoDeletePrevious: true, // Auto-delete old bundles resetWhenUpdate: true, // Reset to builtin on native update
// Channels defaultChannel: 'production',
// Direct Update Mode directUpdate: false, // 'atInstall' | 'onLaunch' | 'always' | false
// Security publicKey: '...', // RSA public key for E2E encryption
// Dynamic Configuration allowModifyUrl: false, // Allow runtime URL changes allowModifyAppId: false, // Allow runtime App ID changes persistCustomId: false, // Persist custom ID across updates persistModifyUrl: false, // Persist URL changes
// Debug debugMenu: false, // Enable debug menu (Ctrl+Shift+D) disableJSLogging: false, // Disable console logs
// Periodic Updates periodCheckDelay: 0, // Seconds between auto-checks (0 = disabled, min 600)});API Electron Updater로 계속하기
API Electron Updater로 계속하기__CAPGO_KEEP_0__을 사용하는 경우 API Electron Updater로 계속하기 API Electron Updater로 계속하기를 사용하여 대시보드와 API 연산을 계획하고 싶다면, API을 연결하세요. @capgo/electron-updater를 사용하여 @capgo/electron-updater를 사용하여 capgo의 네이티브 기능을 구현하는 데 사용됩니다. API 개요 API 구현 세부 사항 소개 __CAPGO_KEEP_0__ Keys API 키 API 키의 구현 세부 사항, 장치 장치의 구현 세부 사항