메인 콘텐츠로 바로가기

Capgo Semver 테스터

채널 정책 호환성을 원본 버전 빌드로 보내진 네이티브 기준과 비교합니다.

Capgo로 전송된 원시 버전, config 또는 원시 앱 메타데이터에서.

해당 채널을 해결한 후 할당된 번들 버전.

__CAPGO_KEEP_0__ 두 semantic 버전을 입력하여 비교 결과를 확인하세요.

Capgo의 "Native Baseline Version"은 Native Baseline Version의 의미를 뜻합니다.

Native Baseline Version은 Capgo로 전송된 네이티브 앱 버전입니다. version_build Capacitor 앱에서, 그 값은 1. 앱의 빌드 설정에서 2. 앱의 런타임 환경에서 3. 사용자 입력에서 등 다양한 방법으로 제공될 수 있습니다. CapacitorUpdater.versioncapacitor.config.*iOS 또는 안드로이드에서 native 앱 버전으로부터 fallback 하게 됩니다. 사용자에게는 그것이 당신의 것이라고 가정하지 마세요. package.json __CAPGO_KEEP_0__ version은 빌드가 config 또는 native metadata에 해당 값을 복사하지 않는 한 빌드 버전입니다.

Capgo 여전히 사용합니다. version_name __CAPGO_KEEP_0__를 설치한 현재 버전을 알기 위해서는. __CAPGO_KEEP_0__ 채널의 semver 정책과 같은 major, minor, 그리고 patch __CAPGO_KEEP_0__ 설정과 비교 version_build.

Capacitor config

설정 CapacitorUpdater.version 앱이 특정 버전을 전송하고 싶을 때.

장점: iOS와 Android 빌드에서 동일한 설정을 유지하기가 쉽습니다.

단점: 설정의 버전이 오래되어 native 릴리즈 전에 업데이트를忘었을 때 잘못된 버전을 보고할 수 있습니다.

네이티브 앱 버전

플랫폼 버전을 사용하십시오. 예를 들어 iOS CFBundleShortVersionString 또는 Android versionName.

장점: TestFlight, App Store, Play Store, 또는 내부 테스트에서 설치한 바이너리와 일치합니다.

Con: 변경은 네이티브 빌드가 필요하고 플랫폼에 따라 릴리즈 설정이 달라질 수 있습니다.

Bundle 대상

remote bundle 버전과 비교하거나, 채널 semver 규칙, 또는 업로드 제약 조건과 같은 --native-version.

Pro: 최신 네이티브 code이 필요로 하는 자바스크립트를 오래된 앱 바이너리에 보내지 않도록 방지합니다.

Con: 규칙이 너무 엄격하면 채널 또는 배포 메타데이터가 조정될 때까지 유효한 업데이트를 차단할 수 있습니다.

이 테스터에 대해, 기기에서 보내는 네이티브 기본선에 version_build, remote bundle 버전과 비교하거나, Capgo을 전달하고 싶은 버전과 비교하십시오.

Semantic Versioning을 사용하는 이유는 Capgo이 무엇인지 설명합니다.

Semantic Versioning 소프트웨어 개발에서 가장 널리 채택된 버전 관리 표준입니다. semver를 사용하여 Capgo는 Capacitor 앱에 대한 실시간 업데이트를 안전하고 호환되게 전달할 수 있습니다.

semver 표준은 Capgo가 각 업데이트에 포함된 변경 사항을 정확하게 이해할 수 있도록 합니다:

  • 패치 업데이트(1.0.0 → 1.0.1): 버그 수정, 자동 적용이 안전합니다.
  • 마이너 업데이트(1.0.0 → 1.1.0): 새로운 기능, 백워드 호환성
  • 메이저 업데이트(1.0.0 → 2.0.0): 파괴적인 변경, 네이티브 앱 스토어 릴리스가 필요합니다.

이러한 변경은 Capgo가 네이티브 code에 불일치한 업데이트를 전송하는 것을 방지하여 사용자에게 충돌을 방지하고 앱이 안정적으로 유지되도록 합니다.

가변 Semver 전략: 기본 버전 관리 이외의 것

semver는 핵심 형식에 대해 엄격하지만, 팀의 필요에 따라 확장할 수 있습니다. pre-release 식별자🏷️ 배포 메타데이터 (+) - "외관" Layer:

배포 추적을 위한 타임스탬프

1.2.0+20240315.142530
1.2.0+ui.refresh.dark-mode
디자인 팀을 위한 UI 업데이트 설명
1.2.0+build.4729.commit.a1b2c3d
CI/CD 빌드 번호 및 Git 커밋
중요:

배포 메타데이터는 버전 순위에서 무시됩니다 - 같음 1.2.0+anything 배포 메타데이터는 버전 순위에서 무시됩니다. 1.2.0 업데이트 로직 Capgo의.

🔧 개발 채널 (-) - Pre-release Identifiers

1.3.0-beta.1
베타 테스트 채널
1.3.0-hotfix.payment
급한修정 branch
1.3.0-feature.newapi
새로운 API 기능 채널

Note: Pre-release 버전은 낮은 우선순위 - 1.3.0-beta.1 < 1.3.0

🎯 Hybrid Approach - Best of Both Worlds

1.3.0-rc.1+ui.redesign.20240315
__CAPGO_KEEP_0__ 릴리스 후보에 UI 메타데이터 및 타임스탬프가 포함됩니다.

__CAPGO_KEEP_0__ - Semver 사용 사례 및 팀 전략

__CAPGO_KEEP_0__ - 🚀 빠른 개발 / 스타트업

0.1.0 __CAPGO_KEEP_0__ - 첫 번째 MVP 릴리스
0.2.0-beta.1 __CAPGO_KEEP_0__ - 새로운 기능 테스트
0.2.0+ui.v2 __CAPGO_KEEP_0__ - UI 리디자인 메타데이터
1.0.0 __CAPGO_KEEP_0__ - 프로덕션 준비

__CAPGO_KEEP_0__ - 1.0 이전 개발 시 0.x.x 사용, 디자인 추적을 위한 메타데이터

__CAPGO_KEEP_0__ - 🏢 기업 / 규제

2.1.0 __CAPGO_KEEP_0__ - 매 분기 릴리스
2.1.1+sec.patch.cve2024 __CAPGO_KEEP_0__ - 보안 패치 및 추적
2.2.0-rc.1+audit.ready __CAPGO_KEEP_0__ - 감사 전 릴리스 후보

엄격한 semver와 준수 메타데이터

🎮 게임 / 창의적 앱

1.0.0+season.winter.2024 → 계절 콘텐츠
1.1.0+event.halloween → 이벤트 기반 기능
1.2.0+assets.hd.remaster → 자산 업데이트

콘텐츠 추적을 위한 창의적 메타데이터

⚡ 핫픽스 전략

1.2.0 → 현재 생산
1.2.1-hotfix.payment → 심각한 버그 수정
1.2.1+urgent.20240315.1430 → 타임스탬프와 함께 출시

테스트를 위한 프리 리리즈, 배포 추적을 위한 메타데이터

🌍 다중 플랫폼 전략

1.3.0+ios.optimized → iOS-특정 최적화
1.3.0+android.material3 → 안드로이드 디자인 업데이트
1.3.0+web.pwa.ready → PWA 기능

같은 버전, 플랫폼별 메타데이터

🔄 CI/CD 통합

1.4.0-alpha.1+build.123 → 자동화된 프리릴리즈
1.4.0+deploy.staging.456 → 스테이징 배포
1.4.0+prod.final.789 → 프로덕션 배포

배포 메타데이터와 함께 자동화된 버전 관리

💡 프로 팁:
  • 빌드 메타데이터 (+) 사용하여 추적, 타임스탬프 또는 호환성에 영향을 주지 않는 외관 정보
  • 개발 채널이 다른 업데이트 순위가 필요한 경우 개발 채널에 대한 프리릴리즈 식별자 (-) 사용
  • 최대 유연성을 위해 두 가지를 결합하세요: 1.2.0-beta.1+ui.dark.theme.20240315
  • Capgo은 semver 우선 순위 규칙을 존중하기 때문에 채널 전략을 적절히 계획하세요

중요: Capgo은 엄격한 의미론적 버전 관리를 사용합니다

npm의 semver 구현과 달리 Capgo은 공식 SemVer 사양을 엄격하게 따릅니다. npm의 node-semver은 사양에서 알려진 편차를 가지고 있어 예상치 못한 동작을 일으킬 수 있습니다.

예를 들어, npm은 버전을 1.0.0-alpha.1 __CAPGO_KEEP_0__은 __CAPGO_KEEP_0__의 Semantic Versioning을 준수하는 유효한 버전 ✓ 표준 릴리스 reported issue

attempted fix

1.0.0 reported issue
2.1.3-alpha ✓ 프리 리리즈
1.0.0-beta.1 ✓ 프리 리리즈에 숫자가 포함된
1.0.0+build.1 ✓ 빌드 메타데이터
1.0.0-rc.1+build.1 ✓ 완전한 버전

__CAPGO_KEEP_0__ Invalid Semantic Versions

v1.0.0 __CAPGO_KEEP_0__ ✗ 'v'가 앞에 오지 않는다
1.0 __CAPGO_KEEP_0__ ✗ 패치 버전이 빠져 있다
1.0.0.0 __CAPGO_KEEP_0__ ✗ 버전의 부분이 너무 많다
1.0.0- __CAPGO_KEEP_0__ ✗ 프리 리리즈가 비어 있다
1.0.0+ __CAPGO_KEEP_0__ ✗ 빌드 메타데이터가 비어 있다

Capgo Capgo Update Behavior

__CAPGO_KEEP_0__ 메이저 전략은 메이저.마이너 라인 내에서 패치 변경을 허용한다. 예를 들어 1.0.0 -> 1.0.1
Patch strategy 블록 1.0.0 -> 1.0.1. It only allows suffix changes like 1.0.0-beta.1 -> 1.0.0-beta.2.
주요 전략 블록은 네이티브 기본선에 높은 주요 버전을 가진 번들을 대상으로 합니다. 예를 들어 1.0.0 -> 2.0.0
다운그레이드 보호는 전체 semver 우선순위를 사용하여, 안정적인 1.0.0은 1.0.0-beta.2보다 새로운 버전입니다.

이 도구는 공식 Semantic Versioning 규격을 따릅니다. npm의 implementation과는 달리.