앱 업데이트를 간소화하고 싶다면 앱 업데이트 그리고 버전 관리? Semantic Versioning (SemVer) 그것을 결합한 Capgo's Over-The-Air (OTA) 업데이트가 앱 관리를 Capacitor 앱 관리를 더 쉽고 빠르게 만듭니다. 여기서 어떻게 하는지 설명해 드리겠습니다.
-
Semantic Versioning의 기본 개념: 버전은 다음 형식으로 사용됩니다.
MAJOR.MINOR.PATCH:- MAJOR: 파괴적인 변경 사항에 대해
- MINOR: 새로운 기능이 뒤로 호환되는 경우.
- PATCH: 버그 수정.
-
Capgo와 함께 SemVer 사용하는 이유는?
- __CAPGO_KEEP_0__ 업데이트에 대한 명확한 통신.
- __CAPGO_KEEP_0__ 버전 관리의 지혜.
- 의존성 충돌을 피하기.
- 릴리즈 계획의 조직.
-
Capgo 설정 단계:
- Capgo 업데이트 플러그인을 설치합니다.
- __CAPGO_KEEP_0__의 버전을 앱에 구성합니다.
capacitor.config.json그리고 다른 파일들. - Initialize with your API key.
- 사용 Capgo CLI을 사용하여 업데이트를 패키지하고 업로드하세요. 버전 및 채널 관리
-
분리된 채널을 사용하세요(예: 테스트를 위한 'beta', 안정적인 릴리스를 위한 'production').:
- 업데이트 정책을 제어하세요(패치 자동 업데이트, 주요 변경 사항에 대한 수동 승인).
- 실패한 업데이트에 대한 롤백 옵션.
- 배포 프로세스:
-
SemVer 규칙에 따라 버전 번호를 업데이트하세요.
- 배포하기 전에 철저히 테스트하세요.
- 업데이트 버전 번호를 SemVer 규칙에 따라 업데이트하세요.
- Use CLI commands to upload and distribute updates.
Capgo은 업데이트가 사용자에게 신속하고 안정적으로 도달할 수 있도록 도와주며, 장애를 처리하고 안정성을 유지하는 데 필요한 도구를 제공합니다. CI/CD 워크플로우를 사용하여 업데이트를 자동화하는 팀에게 적합합니다.
Quick Tip: 업데이트를 항상 테스트하고 채널을 사용하여 효과적으로 단계별 롤아웃을 관리하십시오.
Semantic Versioning | Level Up
Capgo 설정 안내서

이것은 Capgo를 사용하여 OTA 업데이트와 버전 관리를 쉽게 관리하는 방법입니다.
초기 설정 단계
먼저 __CAPGO_KEEP_0__를 설치하십시오. Capgo 업데이터 플러그인:
npm install @capgo/capacitor-updater
npx cap sync
__CAPGO_KEEP_0__을 사용하는 데 필요한 __CAPGO_KEEP_1__ 키를 확인하세요. capacitor.config.json 버전 번호가 의미하는 바를 명확하게 표현하는 __CAPGO_KEEP_0__ 업데이터 플러그인이 사용되는지 확인하세요.
{
"appId": "com.example.app",
"appName": "My App",
"version": "1.0.0"
}
__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.
package.json__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.version__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.android/app/build.gradle__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.versionName)ios/App/App.xcodeproj/project.pbxproj__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.CURRENT_PROJECT_VERSION)
Capgo 업데이터 플러그인이 API 버전 형식으로 구성되어 있는지 확인하세요.
npx @capgo/cli@latest init YOUR_API_KEY
__CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요.
| __CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요. | __CAPGO_KEEP_0__ 업데이터 플러그인이 __CAPGO_KEEP_1__ 버전 형식으로 구성되어 있는지 확인하세요. | 인증 단계 |
|---|---|---|
| 설치 | 플러그인 설치 및 동기화 | 확인 package.json |
| 설정 | 버전 번호 설정 | 모든 파일에 대한 확인 |
| 초기화 | API 키와 연결 | 연결 상태 테스트 |
| 빌드 | 초기 배포 생성 | 업로드 성공 확인 |
버전 관리 통합
Capgo CI/CD 플랫폼과 잘 작동하여 자동 업데이트가 쉽습니다. 지원되는 플랫폼은 다음과 같습니다:
개발 환경에서 작업 중이라면, 자동 업데이트를 비활성화하려면 다음을 설정 파일에 추가하세요:
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": false
}
}
}
이렇게 하면 Capgo가 로컬 변경 사항을 덮어쓰지 않습니다. 설정이 준비되면 첫 번째 버전을 업로드하세요:
npx @capgo/cli@latest bundle upload
npx @capgo/cli@latest channel set production -s default
마지막으로, 앱의 메인 파일에서 번들의 상태를 native 플러그인에게 알립니다:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
CapacitorUpdater.notifyAppReady();
이 설정은 앱이 smooth OTA 배포 및 버전 관리를 위해 준비되도록 보장합니다.
Capgo
버전 번호 관리
Capgo는 SemVer를 사용하여 앱 버전을 관리하며, 다음과 같은 형식으로 구성됩니다. MAJOR.MINOR.PATCH다음과 같이 작동합니다:
- 주 버전 (X.0.0): 호환성에 문제가 있는 변경 사항을 위해 MAJOR 숫자를 증가시킵니다.
- 소 버전 (1.X.0): 호환성이 유지되는 새로운 기능을 위해 MINOR 숫자를 증가시킵니다.
- 패치 버전 (1.0.X): 버그 픽스에 대한 호환성 영향이 없는 경우 PATCH 번호를 증가시킵니다.
| 버전 유형 | 증분할 시점 | 자동 업데이트 동작 |
|---|---|---|
| 주 버전 (X.0.0) | 파괴적인 API 변경에 대해 | 수동 승인 필요 |
| 소 버전 (1.X.0) | 새로운 기능에 대해 | Capgo에서 구성 가능 |
| 패치 버전 (1.0.X) | 버그 픽스에 대해 | 일반적으로 자동입니다. |
SemVer 규칙을 따르면 버전 관리를 단순화하고 배포 채널 간 업데이트를 smoother하게 관리할 수 있습니다.
버전 관리 지침
Capgo은 워크플로우의 다양한 단계에 대한 별도의 채널을 설정하여 배포를 효과적으로 관리할 수 있도록 해줍니다.
-
채널 기반 버전 관리: 배포 프로세스를 조직하기 위해 테스트 및 프로덕션에 대한 별도의 채널을 생성하세요.
- 예를 들어, 새로운 기능을 테스트하기 위해 “beta” 채널 (예: 1.2.0-beta)을 사용하세요.
- 안정적인 릴리스를 위해 “production” 채널 (예: 1.2.0)을 유지하세요.
- 플랫폼별 문제를 해결할 때 플랫폼별 채널 (예: “ios-hotfix” 버전 1.2.1)을 추가하세요.
-
업데이트 정책 구성: 업데이트가 적용되는 방식을 Capgo의 구성 옵션을 사용하여 제어할 수 있습니다. 예를 들어:
{ "plugins": { "CapacitorUpdater": { "disableAutoUpdate": "minor" } } }이 설정은 사용자가 패치 업데이트를 자동으로 받으면서, 주요 및 주요 업데이트가 수동 승인 요건을 필요로 함을 보장합니다.
-
버전 롤백 전략: prerelease 식별자를 사용하여 명확한 롤백 옵션을 유지하세요. 이 접근 방식은 문제가 발생할 경우 이전 버전으로 돌아가며, 모든 채널에서 버전 관리를 일관되게 유지할 수 있습니다.
이러한最佳 관행은 업데이트를 관리하는 데, 새로운 기능을 테스트하고 앱의 배포 프로세스에서 안정성을 유지하는 데 도움이 됩니다.
sbb-itb-f9944d2
OTA 업데이트 배포
버전 관리 설정이 준비되면, OTA 업데이트를 효과적으로 배포하기 위한 다음 단계를 따르세요.
업데이트 준비
버전을 package.json 에서 capacitor.config.json__CAPGO_KEEP_0__.config.json
- 버그 수정: PATCH 번호를 증가시킵니다 (예: 1.0.1 → 1.0.2)
- 새로운 기능: MINOR 번호를 증가시킵니다 (예: 1.0.0 → 1.1.0)
- 중단 변경: MAJOR 번호를 증가시킵니다 (예: 1.0.0 → 2.0.0)
빌드에 대한 철저한 테스트를 수행하고 앱이 서버와 통신하는 것을 확인하세요. notifyAppReady.
다음으로, 업데이트 전략을 결정하세요. . 업데이트 전략에서 다음 옵션을 선택할 수 있습니다:자동 업데이트
- : 최소 버전 요구 사항을 자동으로 강제합니다.__CAPGO_KEEP_0__
- 수동 제어: 업데이트에 대한 정확한 버전 요구 사항을 지정합니다.
- 채널 기반: 테스트 및 스테이지 롤아웃을 위해 채널을 사용합니다.
Capgo CLI 업데이트령령
Capgo의 CLI을 사용하여 업데이트를 쉽게 배포하세요. 여기서 어떻게 하는지 설명합니다.
# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]
# Upload your update bundle
npx @capgo/cli bundle upload [appId]
# Add a new distribution channel
npx @capgo/cli channel add [channelName] [appId]
Capgo은 종단 간 암호화 및 안전한 키 관리를 통해 안전한 배포를 보장합니다.
“@Capgo은 @AppFlow와 달리 모든 돈을 위해热code 푸시를하는 지혜로운 방법입니다 🙂”
배포되면 Capgo의 대시보드를 통해 업데이트를 모니터링할 수 있습니다. 업데이트는 사용자가 앱을 열 때 몇 분 안에 사용자에게 도달합니다. 업데이트 프로세스는 다음과 같습니다:
- 앱이 업데이트를 확인합니다.
- 배경에서 업데이트를 다운로드합니다.
- 사용자가 앱을 종료할 때 새로운 버전을 활성화합니다.
- 다음 런칭 시 업데이트를 적용합니다.
기업급 배포에 대한 경우, CI/CD 자동화 통합을 고려해 보세요.
“우리는_agile 개발을 실천하고 @Capgo은 사용자에게 지속적으로 제공하는 mission-critical입니다!”
문제 해결 및 팁
버전 관리 문제
Capgo에서 의미론적 버전 관리를 관리하는 경우 업데이트 배포가 복잡해질 수 있습니다. 개발 작업을 덮어쓰지 않도록 업데이트 배포를 간소화하기 위해 파일에 다음을 구성하세요: capacitor.config.json 파일:
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": false
}
}
}
업데이트가 실패한 경우 다음을 할 수 있습니다:
- 설정
autoUpdatetofalse컨텍스트: Live updates product page. 역할: Short UI label or navigation item. 메시지 키 `live_update_dynamic_label_to` (Live Update Dynamic Label To). - 개발 중입니다.
- 다시 설치하세요.
- 자동 업데이트 다시 활성화하세요.
주요 버전 업데이트를 위해 사용하세요. disableAutoUpdateBreaking flag를 사용하여 업데이트 처리를 위해 majorAvailable 이벤트를 듣세요:
CapacitorUpdater.addListener('majorAvailable', (info) => {
console.log(`Major update available: ${info.version}`);
// Add your update prompt logic here
});
이 설정을 팀의 좋은 관행과 combination하면 버전 일관성 유지 및 오류를 줄일 수 있습니다.
팀 버전 관리
개별 업데이트가 관리되면 팀은 강력한 버전 관리 관행을establish해야합니다.
“Testing each change before merging it with the main repository will reinforce stability and avoid costly errors” [4]
변경 사항을 메인 저장소와 병합하기 전에 테스트하는 것은 안정성 강화 및 비용이 많이 드는 오류를 피하는 데 도움이됩니다.
- 일관성을 유지하기 위한 방법입니다: 메인 저장소로 하나의 branch를 정의하세요. 진실의 근거로 작동하십시오.
- 개발 및 운영 환경을 위한 별도의 Capgo 채널을 사용하십시오.
- CI/CD PIPELINE을 통해 버전 업로드를 자동화하십시오.
- code 변경 사항을 명확하고 자세한 커밋 메시지와 함께 문서화하십시오.
큰 팀의 경우 다음 버전 관리 매트릭스는 업데이트를 조직하는 데 도움이 될 수 있습니다:
| 환경 | 채널 | 자동 업데이트 | 버전 패턴 |
|---|---|---|---|
| 개발 | dev | 비활성화 | 0.x.x |
| 테스트 환경 | beta | 켜짐 | x.x.x-beta |
| 운영 환경 | 안정 | 켜짐 | x.x.x |
업데이트 복구 단계
주의에도 불구하고 업데이트가 실패할 수 있습니다. 그럴 경우 복구 단계를 따르세요:
- 이전 안정 버전으로 롤백하세요.
- 새로운 수정 사항에 대한 버전 번호를 증가시킵니다 (주의: 삭제 후 버전 번호는 재사용할 수 없습니다) [2].
- 앱이 시작될 때 업데이트를 확인하여 예상대로 작동하는지 확인합니다.
Capgo의 업데이터는 장애를 처리하기 위해 설계되었습니다. 예를 들어, 서버가 연결되지 않거나 업데이트가 삭제된 경우 앱은 정상적으로 작동합니다. [3]. 또한 다음 앱 시작 시 자동으로 실패한 네트워크 요청이 다시 시도됩니다. [3]. 이 내장된 내구성은 중단 시간을 최소화하고 smoother한 운영을 보장합니다.
요약
Semantic Versioning과 Capgo를结合하면 Capacitor 앱의 OTA 업데이트가 더 효율적이게되었습니다. 947.6 백만 업데이트가 전달되고 1,400 개의 운영 앱이 이 시스템을 사용함으로써 배포 프로세스는 81% 더 효율적이게되었습니다. [1]. 이 설정은 개발자들이 업데이트를 빠르게하고 제어된 방식으로 푸시할 수 있으며 앱 스토어 지연을 피할 수 있습니다. [1]개발자들이 말하는 것:
“__CAPGO_KEEP_0__ OTA 업데이트를 출시했습니다”
“__CAPGO_KEEP_0__ OTA 업데이트를 출시했습니다” “Capgo OTA 업데이트를 출시했습니다” 5000명 이상의 사용자에게 제공 중입니다. OTA가 @Capgo에 배포되면 거의 모든 사용자가 몇 분 안에 업데이트가 완료됩니다. - colenso [1]
MAJOR.MINOR.PATCH 버전 시스템은 깨진 변경 사항, 새로운 기능 및 버그 수정을 쉽게 전달할 수 있게 해줍니다. [5]이것은 특히 Capgo 플랫폼을 통해 매주 여러 개의 릴리스를 관리하는 팀에게 도움이 됩니다.
Capgo의 암호화 된 솔루션, CI/CD 도구와 통합되어 예산에 부담이 되지 않습니다. - 매년 5년간 261,000달러의 비용을 절감할 수 있습니다. [1]. 사용자에게 업데이트를 전달하는 데 필요한 채널을 사용자 정의할 수 있습니다.
“우리는_agile 개발을 실천하고 @Capgo은 사용자에게 지속적으로 제공하는 mission-critical입니다!” - Rodrigo Mantica [1]
How to Use Semantic Versioning with Capgo OTA Updates에서 계속 진행하세요.
이 방법을 사용하여 rollback과 버전 관리를 계획하고 __CAPGO_KEEP_0__ OTA Updates를 연결하세요. How to Use Semantic Versioning with Capgo OTA Updates 버전 관리와 rollback을 계획하기 위해 사용하는 방법 롤백 롤백의 구현 세부 사항에 대해 버전 목표 버전 목표 업데이트 동작 업데이트 동작 번들 번들 Capgo Live Updates Capgo Live Updates