Capgo Semver 테스터
채널 정책 호환성을 native baseline sent as version_build 에서 확인합니다.
"네이티브 기본 버전"이란 무엇을 의미하는가
네이티브 기본 버전은 Capgo에 네이티브 앱 버전을 전송할 때 기기에서 업데이트 서버에 버그를 요청할 때 발생합니다.
version_build 네이티브 앱 버전이 Capacitor 앱에서 오는 경우
CapacitorUpdater.version . capacitor.config.*그 설정이 없으면 플러그인은 iOS 또는 Android에서 네이티브 앱 버전을 사용합니다. 버전이 아닙니다. 그것은 package.json
네이티브 앱 버전이 __CAPGO_KEEP_0__ 앱에서 오는 경우
Capgo는 여전히 version_name 다운로드 한 패키지를 현재 설치된 것으로 알기 위해. major, minor채널 semver 정책들, 예를 들어
patch , 그리고 version_build.
remote bundle을 Capacitor config와 비교합니다.
설정 CapacitorUpdater.version 원하는 경우 앱이 보내는 특정 버전을 받으려면.
장점: iOS와 Android 빌드에서 동일한 버전을 유지하기 쉽습니다.
단점: 업데이트를忘고 네이티브 릴리즈 전에 버전을 확인하지 않으면, 오래된 config로 잘못된 버전을 보고할 수 있습니다.
네이티브 앱 버전
플랫폼 버전, 예를 들어 iOS CFBundleShortVersionString 또는 Android
versionName.
Pro: TestFlight, App Store, Play Store, 또는 내부 테스트에서 설치한 바이너리와 일치합니다.
Con: 이 설정을 변경하려면 네이티브 빌드가 필요하고, 릴리즈 설정이 드리프트되면 플랫폼에 따라 다를 수 있습니다.
Bundle 대상
remote bundle 버전, 채널 semver 규칙, 또는 메타데이터 업로드 제약과 비교합니다. --min-update-version . 채널은 --disable-auto-update metadata.
Pro: 새로운 네이티브 code가 필요로 하는 자바스크립트를 보내지 않도록 방지합니다.
Con: 규칙이 너무 엄격하면 유효한 업데이트를 차단할 수 있습니다. 채널 또는 버ндルの 메타데이터를 조정할 때까지.
For this tester, enter the native baseline the device sends as version_build, then compare it with the remote bundle
version you want Capgo to deliver.
Why Capgo uses Semantic Versioning
Semantic Versioning Semantic Versioning은 소프트웨어 개발에서 가장 널리 채택된 버전 관리 표준입니다. Capgo이 라이브 업데이트를 사용자 Capacitor 앱에 제공할 때 호환성과 안전성을 보장하기 위해 semver를 사용합니다.
The semver 표준은 Capgo이 각 업데이트에 포함된 변경 사항을 정확하게 이해할 수 있도록합니다:
- Patch updates (1.0.0 → 1.0.1): 버그 수정, 자동으로 적용할 수 있습니다
- Minor updates (1.0.0 → 1.1.0): 새로운 기능, 백워드 호환성
- Major updates (1.0.0 → 2.0.0): 파괴적인 변경, 네이티브 앱 스토어 릴리스가 필요합니다
This prevents Capgo from ever sending an incompatible update to your native code, protecting your users from crashes and ensuring your app remains stable.
flexible semver 전략: 기본 버전 관리를 넘어
semver는 핵심 형식에 대해 엄격하지만, 팀의 필요에 따라 확장할 수 있습니다. pre-release 식별자 및 빌드 메타데이터:
🏷️ 빌드 메타데이터 (+) - 외관의 'Cosmetic' Layer
중요: 버전 순위에서 빌드 메타데이터는 무시됩니다 -
1.2.0+anything equals 1.2.0 Capgo의 업데이트 로직에 대해
🔧 미리 출시 식별자 (-) - 개발 채널
주의: __CAPGO_KEEP_0__
1.3.0-beta.1 < 1.3.0
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
0.1.0 __CAPGO_KEEP_0__0.2.0-beta.1 __CAPGO_KEEP_0__0.2.0+ui.v2 __CAPGO_KEEP_0__1.0.0 __CAPGO_KEEP_0____CAPGO_KEEP_0__
__CAPGO_KEEP_0__
2.1.0 → 분기별 릴리스2.1.1+sec.patch.cve2024 → 보안 패치(추적)2.2.0-rc.1+audit.ready → 사전 감사 릴리스 후보strict 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 → timestamp으로 출시됨테스트를 위한 프리리리즈, 배포 추적을 위한 메타데이터
🌍 다중 플랫폼 전략
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 순위 규칙을 준수하므로 채널 전략을 계획하세요.
Semantic 버전이 올바른지 확인합니다.
1.0.0
✓ 표준 릴리스
2.1.3-alpha
✓ 프리 릴리스
1.0.0-beta.1
✓ 숫자가 포함된 프리 릴리스
1.0.0+build.1
✓ 빌드 메타데이터
1.0.0-rc.1+build.1
✓ 완전한 버전
Semantic 버전이 올바르지 않은 경우
v1.0.0
✗ 'v'가 앞에 오면 안됩니다.
1.0
✗ 패치 버전이 누락되어 있습니다.
1.0.0.0
✗ 버전의 부분이 너무 많습니다.
1.0.0-
✗ 프리 릴리스가 비어 있습니다.
1.0.0+
✗ 비어있는 빌드 메타데이터
Capgo 업데이트 동작
이 도구는 공식 세미버전 명세를 따릅니다. npm의 implementation과는 다릅니다.