주요 변경 사항
이 플러그인의 설치 단계와 전체 markdown 가이드가 포함된 설정 프롬프트를 복사하세요.
이 문서는 버전별 채널을 사용하여 앱의 breaking changes를 처리하는 방법을 설명합니다. 이 방식을 통해 앱의 여러 버전을 유지하면서도 사용자가 호환 가능한 업데이트를 받을 수 있도록 보장할 수 있습니다.
예시 시나리오
“Example Scenario” 섹션다음과 같은 상황을 가정해 보겠습니다:
- 앱 버전 1.2.3 (이전 버전) - production 채널 사용
- 앱 버전 2.0.0 (breaking changes가 포함된 새 버전) - v2 채널 사용
- Live update 1.2.4 (1.2.3과 호환됨)
- Live update 2.0.1 (2.0.0과 호환)
전략: 메이저 버전에는 항상 defaultChannel 사용
“전략: 메이저 버전에는 항상 defaultChannel 사용” 섹션권장 방식: 각 메이저 버전마다 defaultChannel 를 설정하세요. 이렇게 하면 동적 채널 할당에 의존하지 않고도 특정 사용자 그룹에 항상 업데이트를 푸시할 수 있습니다.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. 새 버전을 위한 채널 생성
“1. 새 버전을 위한 채널 생성” 섹션# Create channel for version 2.xnpx @capgo/cli channel add v22. 버전 2.0.0을 위한 Capacitor 설정 업데이트
“2. 버전 2.0.0을 위한 Capacitor 설정 업데이트” 섹션앱 스토어용 2.0.0 버전을 빌드하기 전에 Capacitor 설정을 업데이트하세요:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { // ... other options defaultChannel: 'v2' // All 2.0.0 users will use v2 channel } }};
export default config;3. 별도의 Code 브랜치 관리
“3. 별도의 Code 브랜치 관리” 섹션앱 버전 간 호환성을 유지하려면 별도의 git 브랜치를 생성하세요:
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Your main branch continues with version 2.x developmentgit checkout main주의: 네이티브 code/API가 없는 구버전 앱에 JavaScript bundle을 푸시하지 마세요. 반드시 적절한 브랜치에서 업데이트를 빌드해야 합니다:
- v1-maintenance 브랜치: 1.x 앱 업데이트용 (production 채널)
- main 브랜치: 2.x 앱 업데이트용 (v2 채널)
4. 각 채널에 Bundle 업로드하기
“4. 각 채널에 Bundle 업로드하기” 섹션# For 1.x updates: Build from v1-maintenance branchgit checkout v1-maintenance# Make your 1.x compatible changes herenpx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branchgit checkout main# Make your 2.x changes herenpx @capgo/cli bundle upload --channel v25. 셀프 할당 활성화
“5. 셀프 할당 활성화” 섹션# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. App Store 배포
“6. App Store 배포” 섹션버전 2.0.0을 빌드하여 App Store에 배포하세요. 이 버전을 다운로드하는 모든 사용자(신규 사용자 및 기존 업그레이드 사용자 포함)는 앱 번들에 설정된 대로 자동으로 v2 채널을 사용하게 됩니다.
향후 버전으로의 확장
“향후 버전으로의 확장” 섹션더 많은 breaking changes가 포함된 3.0.0 버전을 출시할 경우:
# Create channel for version 3.xnpx @capgo/cli channel add v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};이제 모든 버전에 업데이트를 푸시할 수 있습니다:
productionchannel → Version 1.x 사용자v2channel → Version 2.x 사용자v3channel → Version 3.x 사용자
7. 정리 (마이그레이션 후)
“7. 정리 (마이그레이션 후)” 섹션모든 사용자가 2.x 버전으로 마이그레이션을 완료하면 (약 3~4개월 소요):
- 제거하세요
defaultChannelCapacitor 설정에서 - v2 채널을 삭제하세요:
npx @capgo/cli channel delete v2- v1-maintenance 브랜치를 삭제하세요:
git branch -d v1-maintenancegit push origin --delete v1-maintenance배포 전 항상 각 채널에서 업데이트를 철저히 테스트하세요.
Version 1.x 업데이트 유지 관리
“Version 1.x 업데이트 유지 관리” 섹션Version 1.x와 호환되는 업데이트를 보내려면:
- v1-maintenance 브랜치로 전환하세요:
git checkout v1-maintenance- 변경 사항을 적용하고 커밋하세요:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- 프로덕션 채널 빌드 및 업로드:
npx @capgo/cli bundle upload --channel productionBreaking Changes 다음 내용 보기
“Breaking Changes 다음 내용 보기” 섹션사용 중인 경우 주요 변경 사항 채널 라우팅과 단계적 롤아웃을 계획하려면, 이를 다음 항목과 연결하세요 채널 Channels의 구현 세부 사항은, 채널 Channels의 구현 세부 사항은, 채널 Channels의 구현 세부 사항은, Beta Testing 솔루션 Beta Testing 솔루션의 제품 워크플로우는, Version Targeting 솔루션 Version Targeting 솔루션의 제품 워크플로우를 확인하세요.