내용으로 건너뛰기

11. Breaking Changes

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

예시 시나리오

예시 시나리오

Live 업데이트에서 변경 사항을 이해하기 위해, 예를 들어, 다음과 같은 상황을 가정해 보겠습니다:

  • 애플리케이션 버전 1.2.3 (구 버전) - 프로덕션 채널 사용
  • 애플리케이션 버전 2.0.0 (새로운 버전에서 깨진 변경 사항이 포함됨) - v2 채널 사용
  • 실시간 업데이트 1.2.4 (1.2.3과 호환)
  • 실시간 업데이트 2.0.1 (2.0.0과 호환)

전략: 주요 버전의 경우 기본 채널을 항상 사용하십시오.

전략: 주요 버전의 경우 기본 채널을 항상 사용하십시오

권장 방법: 업데이트를 위해 설정하십시오 defaultChannel 각 메이저 버전마다. 이로 인해 사용자 그룹에 대한 업데이트를 언제든지 푸시할 수 있으며 동적 채널 할당에 의존하지 않게 됩니다.

// 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. 버전 2.0.0을 위한 Capacitor 설정 업데이트

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

버전 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;

3. 별도의 Code branch를 관리하십시오

제목: "3. 별도의 Code branch를 관리하십시오"

앱 버전 간 호환성을 유지하기 위해 별도의 Git branch를 생성하십시오:

터미널 창
# 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

중요: 오래된 앱이 사용하지 않는 code/API에 자바스크립트 번들을 푸시하지 마십시오. 항상 적절한 branch에서 업데이트를 빌드하십시오:

  • v1-maintenance branch: 1.x 앱 업데이트에 사용하십시오 (제품 채널)
  • main branch2.x 애플리케이션 업데이트 (v2 채널)

4. 채널별 패키지 업로드

4. 채널별 패키지 업로드
터미널 창
# 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. 앱 스토어 배포

6. 앱 스토어 배포

애플리케이션 스토어에 버전 2.0.0을 빌드하고 배포하세요. 이 버전을 다운로드하는 모든 사용자(새 사용자 또는 업그레이드 중인 기존 사용자)는 앱 번들에서 구성된 v2 채널을 자동으로 사용합니다.

터미널 창

클립보드 복사
# 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. 마이그레이션 후 정리

7. 마이그레이션 후 정리

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

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

배포하기 전에 각 채널에서 업데이트를 철저히 테스트하세요.

버전 1.x 업데이트를 유지하는 방법

버전 1.x 업데이트를 유지하는 방법

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

  1. 버전 1-maintenance branch로 전환:
터미널 창
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

깨진 변경 사항에서 계속하세요.

깨진 변경 사항에서 계속하세요 제목

버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 깨진 변경 사항 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 버전 1-maintenance branch를 최신 버전으로 유지하여 버전 1.x와 호환되는 버그 수정을 적용하세요. 그러나 main에서 발생하는 깨진 변경 사항은 절대 병합하지 마세요. 테스트 베타 솔루션 제품 워크플로우에서 테스트 베타 솔루션을 사용하고 버전 목표 솔루션 제품 워크플로우에서 버전 목표 솔루션을 사용하고