메뉴로 바로가기

시작하기

설치, 동기화 및 설명서 마크다운 설명서를 포함합니다.

설치
pnpm
bun add @capgo/capacitor-updater
bunx cap sync

빠른 시작

빠른 시작

대부분의 사용자에게는 플러그인 설치 및 __CAPGO_KEEP_0__ 클라우드 통합을 포함한 기본적인 Quickstart 가이드를 따르는 것을 추천합니다. which covers both the plugin installation and Capgo cloud integration.

빠른 시작

Capacitor 업데이터 플러그인은 Capacitor 애플리케이션에 대한 오버-더-에어(OTA) 업데이트를 지원합니다. 이 기능을 통해 앱 스토어 리뷰를 거치지 않고 앱에 업데이트를 푸시할 수 있습니다.

  1. 배포 다운로드: 플러그인은 업데이트된 배포본(ZIP 파일)을 다운로드합니다. 이 배포본에는 웹 자산이 포함되어 있습니다.
  2. 추출: 배포본은 장치의 저장소에 추출됩니다.
  3. 핫 리로드: 앱은 새로운 배포본으로 Switch되며 재시작이 필요하지 않습니다.
  4. 백업: 업데이트가 실패하면 앱은 이전에 작동하던 버전으로 돌아갑니다.

사용 모드

사용 모드
1. 자동 업데이트 모드 (권장)

자동 업데이트를 관리하는 데 자동으로 사용되는 플러그인과 함께 가장 간단한 방법입니다.

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Plugin handles everything automatically
// Configure in capacitor.config.ts

앱에 추가 capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-update-server.com/api/updates'
}
}
}

2. 수동 모드

2. 수동 모드

업데이트 프로세스를 더 세밀하게 제어하기 위해 고급 제어를 제공합니다.

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Download an update
const bundle = await CapacitorUpdater.download({
url: 'https://your-server.com/updates/v1.0.1.zip',
version: '1.0.1'
});
// Set the bundle (will be used on next app start)
await CapacitorUpdater.set({
id: bundle.id
});
// Or reload immediately
await CapacitorUpdater.reload();

플랫폼 설정

플랫폼 설정

iOS

iOS

추가 설정이 필요하지 않습니다. 플러그인은 BOX에서 작동합니다.

Android

Android

추가 설정이 필요하지 않습니다. 플러그인은 BOX에서 작동합니다.

기본 API 사용 방법

Section titled “Basic API Usage”

업데이트 다운로드

업데이트 다운로드
import { CapacitorUpdater } from '@capgo/capacitor-updater';
const bundle = await CapacitorUpdater.download({
url: 'https://example.com/update.zip',
version: '1.0.1'
});
console.log('Downloaded bundle:', bundle.id);

활성 번들 설정

활성 번들 설정
// Set bundle to be used on next app start
await CapacitorUpdater.set({
id: bundle.id
});

새 번들로 재로드

새 번들로 재로드
// Reload app immediately with new bundle
await CapacitorUpdater.reload();

번들 목록

번들 목록
const { bundles } = await CapacitorUpdater.list();
console.log('Available bundles:', bundles);

번들 삭제

Bundle 삭제
await CapacitorUpdater.delete({
id: 'bundle-id'
});

현재 Bundle 가져오기

현재 Bundle 가져오기
const { bundle } = await CapacitorUpdater.current();
console.log('Current bundle:', bundle.version);

이벤트 리스너

이벤트 리스너

업데이트 이벤트를 듣기:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Listen for download progress
CapacitorUpdater.addListener('download', (info) => {
console.log('Download progress:', info.percent);
});
// Listen for download completion
CapacitorUpdater.addListener('downloadComplete', (bundle) => {
console.log('Download complete:', bundle.version);
});
// Listen for update failures
CapacitorUpdater.addListener('updateFailed', (error) => {
console.error('Update failed:', error);
});
// Listen for successful updates
CapacitorUpdater.addListener('updateAvailable', (info) => {
console.log('Update available:', info.version);
});

설정 옵션

설정 옵션

플러그인을 설정 capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
// Auto-update settings
autoUpdate: true,
updateUrl: 'https://api.example.com/updates',
// Update behavior
resetWhenUpdate: true,
directUpdate: false,
// Version settings
version: '1.0.0',
// Security
allowModifyUrl: false,
// Stats collection
statsUrl: 'https://api.example.com/stats',
// Channel (for Capgo cloud)
defaultChannel: 'production'
}
}
}

통합 패턴

통합 패턴

Capgo 클라우드와 함께

Capgo 클라우드와 함께

시작하기 가장 쉬운 방법:

// Install the Capgo CLI
bun add -g @capgo/cli
// Login to Capgo
npx @capgo/cli login
// Upload your first bundle
npx @capgo/cli bundle upload
// The plugin auto-updates from Capgo cloud

자세한 내용은 기본적인 Quickstart 가이드 자세한 내용은

자체 호스팅 업데이트

자체 호스팅 업데이트

자체 업데이트 서버를 호스팅하세요:

// Configure your update endpoint
{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-server.com/api/check-update'
}
}
}

서버는 다음을 반환해야 합니다:

{
"version": "1.0.1",
"url": "https://your-server.com/updates/1.0.1.zip"
}

보기 자체 호스팅 모드 자세한 내용은

수동 업데이트 흐름

수동 업데이트 흐름

업데이트에 대한 완전한 제어:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function checkAndUpdate() {
// Check for updates from your server
const response = await fetch('https://api.example.com/check-update');
const { version, url } = await response.json();
// Download the update
const bundle = await CapacitorUpdater.download({
url,
version
});
// Notify bundle is ready
await CapacitorUpdater.notifyAppReady();
// Set as next version
await CapacitorUpdater.set({ id: bundle.id });
// Reload when ready
await CapacitorUpdater.reload();
}

최선의 관행

Best Practices
  • 항상 앱이 성공적으로 로드 될 때 notifyAppReady() 테스트 업데이트를 충분히 하기 전에 프로덕션으로 푸시
  • 네트워크 실패 시 적절한 오류 처리를 구현
  • 버전 번호를 일관되게 사용
  • 다운로드 속도가 빠른 작은 배포 크기를 유지
  • 업데이트 성공률을 모니터링
  • 다음 단계