Capgo Semver Tester
채널 정책 호환성을 native baseline sent as version_build과 비교합니다.
"네이티브 기본 버전"이란 무엇인가요
네이티브 기본 버전은 Capgo 에 네이티브 앱 버전을 전송할 때 기기에서 업데이트 서버에 버그를 요청할 때 발생합니다.
version_build 네이티브 앱 버전이 Capacitor 앱에서 오는 경우, 그 값은
CapacitorUpdater.version 에서 오는 경우입니다. capacitor.config.*그 설정이 없으면 플러그인은 iOS 또는 Android에서 네이티브 앱 버전을 사용합니다. package.json
버전이 아닙니다. 그 버전을 복사하여 config 또는 네이티브 메타데이터에 넣지 않는 한.
Capgo는 여전히 version_name 다운로드 한 채널을 확인하기 위해 현재 설치된 버전을 알기 위해. major, minor, 및
patch remote bundle을 __CAPGO_KEEP_0__ config과 비교합니다. version_build.
Capacitor config
원하는 버전을 앱으로부터 전달받기를 원할 때. CapacitorUpdater.version 장점:
iOS 및 Android 빌드에서 동일한 버전을 유지하기 쉽습니다. 단점:
업데이트를忘고 native 릴리즈 전에 버전을 확인하지 않으면 오래된 config로 잘못된 버전을 보고할 수 있습니다. 네이티브 앱 버전
iOS와 같은 플랫폼 버전을 사용합니다.
iOS와 같은 플랫폼 버전을 사용합니다. CFBundleShortVersionString 또는 안드로이드
versionName.
장점: TestFlight, App Store, Play Store, 또는 내부 테스트에서 설치한 바이너리와 일치합니다.
단점: 이 값을 변경하려면 네이티브 빌드가 필요하고, 릴리즈 설정이 드리프트되면 플랫폼에 따라 다를 수 있습니다.
Bundle 대상
remote bundle 버전, 채널 semver 규칙, 또는 메타데이터 업로드 제약 조건과 비교합니다. --min-update-version채널은 반드시 --disable-auto-update metadata.
장점: 최신 네이티브 code이 필요로 하는 자바스크립트를 보내지 않도록 방지합니다.
단점: 규칙이 너무 엄격하면 채널 또는 Bundle 메타데이터를 조정하지 않으면 유효한 업데이트를 차단할 수 있습니다.
이 테스터를 위해, 기기에서 보낸 원본 버전을 입력하세요 version_buildCapgo가 전송할 원격 버전과 비교하세요
Capgo이 왜 Semantic Versioning을 사용하는지 이유
Semantic Versioning 소프트웨어 개발에서 가장 널리 채택된 버전 관리 표준입니다. Capgo은 semver를 사용하여 Capacitor 앱에 대한 실시간 업데이트를 안전하고 호환되게 전달할 수 있습니다.
Capgo가 각 업데이트에 포함된 변경 사항을 정확히 이해할 수 있도록 하는 semver 표준입니다.
- Patch 업데이트(1.0.0 → 1.0.1): 버그 수정, 자동 적용이 안전합니다
- Minor 업데이트(1.0.0 → 1.1.0): 새로운 기능, 이전 버전과 호환됩니다
- Major 업데이트(1.0.0 → 2.0.0): 파괴적인 변경, 네이티브 앱 스토어 릴리스가 필요합니다
이것은 Capgo이 항상 불일치 업데이트를 보내지 않도록 막아주며, code의 안정성을 보장하고 사용자들이 앱이 충돌하지 않도록 보호합니다.
flexible semver 전략: 기본 버전 관리를 넘어
semver는 핵심 형식에 대해 엄격하지만, 팀의 요구에 맞게 확장할 수 있습니다. pre-release 식별자 및 build 메타데이터:
🏷️ Build Metadata (+) - 외관의 Layer
중요: 버전 순위에서 빌드 메타데이터는 무시됩니다 -
1.2.0+anything 같다 1.2.0 Capgo의 업데이트 로직에서
🔧 미리 출시 식별자 (-) - 개발 채널
주의: 미리 출시 버전은 낮은 우선 순위 -
1.3.0-beta.1 < 1.3.0
🎯 하이브리드 접근 방식 - 양쪽의 최고
실제 Semver 사용 사례 및 팀 전략
🚀 스타트업 / 빠른 개발
0.1.0 - 첫 MVP 출시0.2.0-beta.1 - 새로운 기능 테스트0.2.0+ui.v2 - UI 리디자인 메타데이터1.0.0 - 프로덕션 준비0.x.x를 사용하여 1.0 이전 개발, 디자인 추적을 위한 메타데이터
🏢 기업 / 규제
2.1.0 → 4분기 릴리스2.1.1+sec.patch.cve2024 → 보안 패치(추적)2.2.0-rc.1+audit.ready → 사전심사 릴리스 후보strict semver with compliance metadata
🎮 게임/ 창의적 앱
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과는 다릅니다.