더 빠른 업데이트가 앱 업데이트를 앱 스토어 심사 지연 없이 필요하신가요? Capgo 사용자에게 보안이 강화된 Over-the-Air (OTA) 업데이트를 즉시 전달할 수 있습니다. 앱 스토어 심사 과정을 건너뛰고 간편하게 앱을 최신 상태로 유지하세요.
핵심 요약:
- Capgo란 무엇인가요? 앱의 Live Update를 위한 Capacitor 오픈 소스 플랫폼입니다.
- 왜 OTA Updates인가요? 시간을 절약하고, 사용자 경험을 개선하며, 버그를 빠르게 수정하세요.
- 시작하는 방법은?
- 다음 플러그인을 설치하세요: Capgo:
npm install @capgo/capacitor-updater - API 키로 앱을 설정하세요.
- “production” 또는 “beta” 채널을 사용하여 타겟 롤아웃을 진행하세요.
- 다음 플러그인을 설치하세요: Capgo:
- 고급 기능: 종단간 암호화, 에러 핸들링, 그리고 CI/CD 통합까지.
Capgo 문서(capgo.app/docs)에서 설정, 보안, 트러블슈팅을 위한 단계별 가이드를 제공합니다. 설치부터 고급 설정까지, 원활한 업데이트를 위한 필수 가이드입니다.
Capgo, Live update용 CapacitorJs 플러그인

Capgo 문서 활용하기
OTA 업데이트를 다룰 때는 문서를 효율적으로 활용하는 것이 중요합니다. Capgo 문서는 Capacitor 앱에 Live Update를 통합하는 상세 가이드를 제공합니다.
문서 확인 방법
Capgo 문서는 다음에서 확인할 수 있습니다: capgo.app/docs [1]. 각 섹션은 목적에 따라 다음과 같이 구성되어 있습니다:
| 섹션 | 목적 | 주요 주제 |
|---|---|---|
| 시작하기 | 초기 설정 | 설치 단계, API 핵심 설정 |
| 설정 | 기본 설정 | 플러그인 구성, 환경 설정 |
| API 레퍼런스 | 기술 상세 정보 | 메서드, 파라미터, 반환 값 |
| 보안 | 보안 조치 | 암호화 설정, 서명 검증 |
| 문제 해결 | 문제 해결 | 일반적인 이슈, 진단 도구 |
주요 용어 및 개념
자주 접하게 될 주요 용어는 다음과 같습니다:
- 채널: 버전 배포를 제어하는 업데이트 스트림입니다. 예를 들어, 사용자 그룹에 따라 “production”, “beta”, “staging” 채널을 설정하여 운영할 수 있습니다. [4].
- 업데이트 정책: 업데이트가 전달되고 적용되는 방식을 정의합니다. 자동 다운로드, 설치 타이밍, 사용자 prompt 설정 등을 포함합니다. [1].
- 앱 상태 리스너: 앱이 포그라운드에 있는지 백그라운드에 있는지 추적하는 컴포넌트입니다. [4].
- 번들: 에셋, code 변경 사항, 설정 업데이트를 포함하여 앱의 새 버전을 담고 있는 패키징된 업데이트 파일입니다. [4].
Code 예제 및 튜토리얼
문서에서는 통합을 간소화할 수 있는 샘플 code를 제공합니다. TypeScript/JavaScript를 사용한 기본 예제는 다음과 같습니다:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Initialize the updater
await CapacitorUpdater.notifyAppReady()
더 심화된 유스케이스를 위해 문서에서는 실제 사례를 제공합니다. [2][3], 다음과 같은 예시가 있습니다:
- A/B 테스트를 위한 채널 전환
- 사용자 프롬프트를 활용한 커스텀 업데이트 플로우
- 에러 핸들링 및 롤백 구현
- CI/CD 파이프라인과 업데이트 통합
각 튜토리얼은 성능 고려 사항과 보안 측면도 함께 다루어 최선의 결정을 내릴 수 있도록 돕습니다. 문서는 최신 기능과 베스트 프랙티스를 반영하여 수시로 업데이트됩니다. [1].
구현에 대한 자세한 내용은 다음 설정 가이드를 확인하세요.
OTA 업데이트 설정하기
Capgo에서 OTA 업데이트를 설정하여 배포 프로세스를 간소화하세요. 문제없는 구성을 위해 다음 단계와 팁을 따라가 보세요.
기본 설정 단계
Capacitor 프로젝트에 Capgo 플러그인을 설치하는 것부터 시작하세요:
npm install @capgo/capacitor-updater
npx cap sync
다음으로, capacitor.config.json 파일에 Capgo API 키를 추가하세요:
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": true,
"apiKey": "YOUR_API_KEY_HERE"
}
}
}
그 다음, 앱의 메인 파일에서 업데이트를 감지할 수 있도록 updater를 초기화하세요:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.notifyAppReady();
설정이 완료되면, 다양한 업데이트 스트림을 관리하기 위한 채널을 구성할 수 있습니다.
Update Channel 설정
배포 요구 사항에 맞춰 업데이트 채널 다음과 같이 구성하세요:
| Channel 유형 | 목적 | 사용 사례 |
|---|---|---|
| Production | Stable 릴리스 | 일반 사용자층 |
| Staging | 출시 전 테스트 | QA 팀 및 베타 테스터 |
| Beta | 기능 테스트 | 얼리 어답터 |
특정 채널에 업데이트를 upload하려면 다음을 사용하세요: Capgo CLI:
npx @capgo/cli upload -c production
업데이트 방식
Capgo는 업데이트를 처리하는 두 가지 주요 방식을 제공합니다:
자동 업데이트
다음 설정을 통해 automatic updates를 활성화하세요: autoUpdate: true 설정 파일에 적용하세요. 이렇게 하면 개발자가 별도의 작업을 하지 않아도 업데이트가 백그라운드에서 자동으로 적용됩니다.
수동 업데이트 더 세밀한 제어가 필요하다면 업데이트를 수동으로 관리할 수 있습니다. 다음 패턴을 사용하여 업데이트를 확인하고 적용하세요:
// Check for updates
const update = await CapacitorUpdater.download();
// Install when ready
if (update) {
await CapacitorUpdater.set(update);
}
중요한 업데이트의 경우, 진행하기 전에 사용자에게 알림을 띄울 수 있습니다:
if (update.version > currentVersion) {
const userConsent = await showUpdatePrompt();
if (userConsent) {
await CapacitorUpdater.set(update);
}
}
커스텀 ID와 채널을 사용하여 특정 사용자 그룹을 대상으로 업데이트를 진행할 수도 있습니다:
await CapacitorUpdater.setCustomId('beta-tester-123');
await CapacitorUpdater.setChannel('beta');
마지막으로, 에러 핸들링과 롤백 옵션을 반드시 포함하세요:
try {
await CapacitorUpdater.set(update);
} catch (error) {
await CapacitorUpdater.reset(); // Revert to the last working version
console.error('Update failed:', error);
}
이 단계들을 마치면 OTA 업데이트 시스템 준비가 완료됩니다. 고급 설정을 통해 업데이트 프로세스를 더욱 커스텀해 보세요.
sbb-itb-f9944d2
고급 설정
더욱 강력한 보안 조치와 유연한 업데이트 구성을 통해 Capgo OTA 업데이트 설정을 최적화하세요. 이 옵션들을 통해 App Store 가이드라인을 준수하면서도 안전하고 매끄러운 업데이트 경험을 제공할 수 있습니다.
보안 기능
Capgo는 업데이트 번들을 보호하고 사용자에게 안전하게 전달하기 위해 강력한 보안 프로토콜을 제공합니다. 이 플랫폼은 모든 업데이트에 공개 키 암호화를 적용한 종단 간 암호화를 사용합니다 [1]. 주요 보안 기능을 활성화하는 방법은 다음과 같습니다:
// Enable bundle verification
await CapacitorUpdater.setVerifyBundles(true);
// Configure encryption settings
await CapacitorUpdater.configure({
encryption: {
enabled: true,
failOnError: true
}
});
번들 보호 시스템의 주요 구성 요소는 다음과 같습니다:
| 보안 기능 | 설명 | 구현 방법 |
|---|---|---|
| 번들 무결성 | 암호화 서명으로 패키지 진위 여부 확인 | setVerifyBundles()로 자동 활성화 |
| 롤백 보호 | 업데이트 실패 시 안정적인 버전으로 롤백 | 업데이트 프로세스 내장 |
| 액세스 제어 | 역할 기반 권한으로 업데이트 관리 | 대시보드에서 설정 가능 |
업데이트 동작 설정
이벤트 리스너와 설정 옵션을 사용하여 업데이트 배포 및 설치 방식을 커스텀할 수 있습니다. 다음 설정을 통해 업데이트 타이밍과 사용자 상호작용을 조정하세요:
// Listen for when an update is available
CapacitorUpdater.addListener('updateAvailable', async (info) => {
if (info.version > currentVersion) {
// Custom update logic based on app state
const isAppInactive = await checkAppState();
if (isAppInactive) {
await CapacitorUpdater.download();
}
}
});
// Monitor download completion
CapacitorUpdater.addListener('downloadComplete', (info) => {
console.log(`Update ${info.version} ready to install`);
// Implement custom installation timing if desired
});
단계적 배포(phased rollouts)의 경우, 대시보드에서 직접 업데이트 배포를 구성하거나 code를 통해 설정할 수 있습니다:
// Set custom update conditions for a gradual rollout
await CapacitorUpdater.configure({
rollout: {
percentage: 25, // Start with 25% of users
timeInterval: 24 // Increase rollout percentage every 24 hours
}
});
특정 버전 관련 동작을 처리하려면:
// Handle version-specific update failures
CapacitorUpdater.addListener('updateFailed', async (info) => {
if (info.error.code === 'VERSION_MISMATCH') {
await CapacitorUpdater.reset(); // Revert to the last stable version
// Optionally, handle error notification here
}
});
이 설정들을 통해 앱 요구사항에 맞춰 프로세스를 최적화하면서도 안정적인 업데이트를 보장할 수 있습니다. 프로덕션에 배포하기 전, 반드시 Capgo의 스테이징 환경에서 업데이트를 철저히 테스트하세요. [2].
문제 해결 가이드
Capgo의 에러 로그와 내장 도구를 활용하면 스토어 규정을 준수하면서 OTA 업데이트 문제를 해결할 수 있습니다.
주요 이슈 및 해결 방법
자주 발생하는 문제와 해결 방법은 다음과 같습니다:
-
다운로드 실패 증상: 다운로드가 멈추거나 완료되지 않음. 솔루션: 네트워크 연결을 확인하고, 업데이트 URL이 유효한지 점검하세요. 중단 상황에 대비해 재시도(retry) 메커니즘을 추가하는 것이 좋습니다.
-
버전 충돌 증상: 업데이트 설치가 실패하거나 앱이 불안정해짐. 솔루션: 충돌을 방지하기 위해 명확한 버전 번호를 사용하고, 안전을 위해 롤백(rollback) 옵션을 구현하세요.
-
설치 오류 증상: 업데이트가 실패하거나 자동 롤백이 발생합니다. 솔루션: 롤백을 방지하려면 업데이트 성공 후
notifyAppReady()를 반드시 호출해야 합니다.
50MB가 넘는 업데이트는 더 작은 파일로 나누면 Android 기기에서 성능을 개선할 수 있습니다. [5].
문제를 조기에 발견하려면 상세한 에러 로깅을 사용하세요. 예를 들어, 다음 리스너를 구현하세요:
CapacitorUpdater.addListener('updateFailed', (error) => {
console.log(`Update failed: ${error.code}`);
logUpdateError({
errorCode: error.code,
deviceInfo: error.device,
timestamp: new Date().toISOString()
});
});
에러 로깅과 사전 점검을 결합하면 컴플라이언스에 집중하기 전에 이러한 문제를 효과적으로 해결할 수 있습니다.
App Store 규정
기술적 수정만으로는 부족합니다. 업데이트도 앱 스토어 가이드라인에 맞아야 합니다.
Apple App Store 요구 사항:
- 사용자 투명성: 업데이트 내용을 사용자에게 명확히 알리고 동의를 받으세요.
- 핵심 기능: 검토된 앱의 주요 기능이 그대로 유지되는지 확인하세요.
- 보안 조치: 업데이트 전송 시 보안이 확보된 방식을 사용하세요.
Android 구현:
await CapacitorUpdater.configure({
updateNotification: {
title: "Update Available",
message: "A new version is available. Please update to access the latest features.",
requireUserConsent: true
}
});
모범 사례:
- 버전 관리: 충돌을 줄이기 위해 업데이트를 점진적으로 배포하세요.
- 업데이트 알림: 명확하고 사용자 친화적인 업데이트 알림을 제공하세요.
- 보안: 번들의 무결성을 검증하고 암호화를 사용하여 데이터를 보호합니다.
요약
이 섹션은 가이드의 핵심 내용을 요약합니다.
Capgo 문서는 앱 스토어 규정을 준수하면서 Capacitor 앱에 OTA updates를 통합하는 명확한 방법을 제공합니다.
Capgo 리소스를 사용하면 개발자는 다음과 같은 필수 기능을 구현할 수 있습니다. 종단간 암호화(end-to-end encryption) 및 CI/CD 통합, 초기 설정부터 고급 구성까지 모든 과정을 다룹니다. [1].
주요 구현 영역
| 항목 | 핵심 집중 사항 | 찾는 방법 |
|---|---|---|
| 보안 | 암호화 및 무결성 검사 | 보안 기능 섹션 |
| 컴플라이언스 | Apple 및 Android 요구 사항 준수 | App Store 규정 가이드 |
| 업데이트 관리 | 버전 관리 및 롤백 옵션 | 업데이트 방식 가이드 |
| 에러 핸들링 | 로깅 및 트러블슈팅 단계 | 문제 해결 가이드 |
이 영역들은 Capgo 업데이트 관리 시스템의 핵심입니다.
Capgo의 CLI 및 분석 도구는 업데이트 관리를 간소화합니다 앱의 전체 라이프사이클 동안 [1].
추가 지원이 필요하면 다음 리소스를 확인해 보세요: API 문서, 샘플 프로젝트, 그리고 커뮤니티 포럼 [2].
OTA 업데이트를 위한 Capgo 문서 사용법부터 계속 읽기
사용 중이라면 OTA 업데이트를 위한 Capgo 문서 사용법 보안 및 컴플라이언스 계획을 세우려면, 다음 항목과 연결하세요: 암호화 암호화 구현 상세 정보: 컴플라이언스 컴플라이언스 구현 상세 정보: Capgo 보안 스캐너 Capgo Security Scanner 제품 워크플로우: Capgo 보안 Capgo Security 제품 워크플로우 및 Capgo 신뢰 센터 Capgo Trust Center 제품 워크플로우: