컨텐츠로 바로가기

파괴적인 변경 사항

버전별 채널을 사용하여 앱에서 발생하는 깨진 변경 사항을 처리하는 방법에 대한 설명입니다. 이 접근 방식은 사용자가 호환 가능한 업데이트를 받을 수 있도록 앱의 다양한 버전을 유지할 수 있도록 합니다.

예시 시나리오

예시 시나리오 섹션

예를 들어, 다음을 가정해 보세요:

  • 버전 1.2.3 (기존 버전) - 프로덕션 채널 사용
  • 버전 2.0.0 (새 버전, 깨끗한 변경 사항 포함) - v2 채널 사용
  • 버전 1.2.4 (1.2.3 호환)
  • 버전 2.0.1 (2.0.0 호환)

전략: 메이저 버전마다 defaultChannel 사용

전략: 메이저 버전마다 defaultChannel 사용 섹션

권장 방법: 매JOR 버전마다 defaultChannel 매JOR 버전마다 설정을 하세요. 이렇게 하면 항상 특정 사용자 그룹에 업데이트를 푸시할 수 있습니다. 동적 채널 할당에 의존하지 않습니다.

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'

1. 새로운 버전을 위한 채널을 생성하세요.

1. 새로운 버전을 위한 채널을 생성하는 방법
터미널 창
# Create channel for version 2.x
npx @capgo/cli channel create v2

2. Capacitor 버전 2.0.0을 위한 설정을 업데이트 하세요.

2. Capacitor 버전 2.0.0을 위한 설정 업데이트 방법

버전 2.0.0을 위한 앱 스토어 빌드에 사용되는 Capacitor 설정을 업데이트 하세요.

capacitor.config.ts
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;

복사

중요:
# Create and maintain a branch for version 1.x updates
git checkout -b v1-maintenance
git push origin v1-maintenance
# Your main branch continues with version 2.x development
git checkout main

v1-maintenance branch Section titled “3. Manage Separate code Branches”

  • 3. 별도의 __CAPGO_KEEP_0__ Branch 관리: 1.x 앱 업데이트를 위한 (production 채널)
  • main branch: 2.x 앱 업데이트를 위한 (v2 채널)

4. 각 채널에 업로드할 Bundle을 업로드합니다.

4. 각 채널에 업로드할 Bundle을 업로드합니다.
터미널 창
# For 1.x updates: Build from v1-maintenance branch
git checkout v1-maintenance
# Make your 1.x compatible changes here
npx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branch
git checkout main
# Make your 2.x changes here
npx @capgo/cli bundle upload --channel v2

5. 자체 할당을 활성화합니다.

5. 자체 할당을 활성화합니다.
터미널 창
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

6. 앱 스토어에 배포합니다.

애플 스토어에 배포하기

버전 2.0.0을 애플 스토어에 배포하고, 모든 사용자가 이 버전을 다운로드할 때(새 사용자 또는 업그레이드 중인 기존 사용자) 자동으로 v2 채널을 사용하게 됩니다. 이는 앱 번들에 채널을 구성했기 때문입니다.

애플 스토어 버전 3.0.0을 출시할 때 더 많은 깨진 변경 사항이 있을 때:

터미널 창

클립보드에 복사

애플 스토어에 배포하기
# Create channel for version 3.x
npx @capgo/cli channel create v3
// capacitor.config.ts for version 3.0.0
const config: CapacitorConfig = {
// ...
plugins: {
CapacitorUpdater: {
defaultChannel: 'v3' // Version 3.x users
}
}
};

이제 모든 버전으로 업데이트를 푸시할 수 있습니다.

  • production 채널 → 버전 1.x 사용자
  • v2 채널 → 버전 2.x 사용자
  • v3 채널 → 버전 3.x 사용자

7. 마이그레이션 후 정리

마이그레이션 후 정리

모든 사용자가 버전 2.x로 마이그레이션되면(3-4개월 후):

  1. 삭제 defaultChannel Capacitor 설정에서 삭제
  2. 버전 2 채널 삭제:
터미널 창
npx @capgo/cli channel delete v2
  1. 버전 1-maintenance branch를 삭제하세요.:
터미널 창
git branch -d v1-maintenance
git push origin --delete v1-maintenance

업데이트를 각 채널에서 반드시 테스트하고 배포하기 전에 항상 테스트하세요.

버전 1.x 업데이트 유지

버전 1.x 유지 보수

버전 1.x와 호환되는 업데이트를 보내려면:

  1. 버전 1-maintenance branch로 switch합니다:
터미널 창
git checkout v1-maintenance
  1. 변경 사항을 적용하고 커밋하세요:
터미널 창
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. 생산 채널에 업로드하세요:
터미널 창
npx @capgo/cli bundle upload --channel production

Keep going from Breaking Changes

Breaking Changes라는 제목의 섹션

Capgo를 사용 중이라면 Breaking Changes 를 계획 채널 라우팅 및 스테이지드 롤아웃에 사용하여 Channels 에 연결하세요. Channels에 대한 implementation detail은 Channels 에 설명되어 있습니다. Channels에 대한 implementation detail은 Channels에 설명되어 있습니다. 채널에서 구현 세부 정보 베타 테스트 솔루션 베타 테스트 솔루션의 제품 워크플로우에 대해 버전 목표 솔루션 버전 목표 솔루션의 제품 워크플로우에 대해