주요 변경 사항
이 플러그인의 설치 단계와 전체 마크다운 가이드가 포함된 설정 프롬프트를 복사하세요.
이 문서에서는 버전별 채널을 사용해 앱의 breaking changes를 처리하는 방법을 설명합니다. 이 방식으로 앱의 여러 버전을 유지하면서 사용자가 호환되는 업데이트를 받도록 보장할 수 있습니다.
예시 시나리오
“예시 시나리오” 섹션다음과 같은 상황을 가정해 보겠습니다:
- 앱 버전 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 버전을 빌드하고 배포하세요. 이 버전을 다운로드하는 모든 사용자(신규 사용자 또는 업그레이드하는 기존 사용자)는 앱 번들에 설정되어 있으므로 자동으로 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 → 1.x 버전 사용자v2channel → 2.x 버전 사용자v3channel → 3.x 버전 사용자
7. 정리 (마이그레이션 후)
“7. 정리 (마이그레이션 후)” 섹션모든 사용자가 2.x 버전으로 마이그레이션을 완료하면 (3~4개월 예상):
- 제거
defaultChannel사용 중인 Capacitor 설정에서 - 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 Solution의 제품 워크플로우용.