메인 콘텐츠로 건너뛰기

Capgo Semver Tester

__CAPGO_KEEP_0__ 버전 테스터

The native version sent to Capgo as version_build, from config or native app metadata.

native baseline 버전이 어디서 오는 지 보여줍니다.

업데이트 비교를 위해 두 개의 의미론적 버전을 입력하세요

'네이티브 기본 버전'이란 무엇을 의미하는가

네이티브 기본 버전은 Capgo으로 전송되는 네이티브 앱 버전입니다. 장치가 업데이트 서버에서 번들을 요청할 때 Capgo 앱에서 그 값은 version_build when the device asks the update server for a bundle. In a Capacitor app, that value can come from CapacitorUpdater.version . 만약 그 설정이 없다면 플러그인은 iOS 또는 Android에서 네이티브 앱 버전을 가져옵니다. 그 버전을 가정하지 마십시오. 그 버전이 __CAPGO_KEEP_0__의 버전이 아닌 경우, 빌드가 그 값을 config 또는 네이티브 메타데이터로 복사하지 않는 한. capacitor.config.*__CAPGO_KEEP_0__는 여전히 사용합니다. package.json __CAPGO_KEEP_0__는 여전히 사용합니다.

Capgo는 여전히 사용합니다. version_name __CAPGO_KEEP_0__ config를 비교하여 현재 설치된 다운로드된 번들을 알 수 있습니다. Channel semver 정책과 같은 major, minor, 및 patch __CAPGO_KEEP_0__ config와 비교하여 version_build.

Capacitor config을 설정합니다.

__CAPGO_KEEP_0__ config이 앱에서 보내는 특정 버전을 원할 때. CapacitorUpdater.version __CAPGO_KEEP_0__ config:

iOS와 Android 빌드에서 동일하게 유지하기 쉽습니다. __CAPGO_KEEP_0__ config이 업데이트를忘고 native 릴리즈 전에 업데이트를忘고 stale config가 잘못된 버전을 보고할 수 있습니다.

__CAPGO_KEEP_0__ config __CAPGO_KEEP_0__ config을 사용하여 플랫폼 버전, 예를 들어 iOS를 사용합니다.

__CAPGO_KEEP_0__ config을 사용하여 플랫폼 버전, 예를 들어 iOS를 사용합니다.

__CAPGO_KEEP_0__ config을 사용하여 플랫폼 버전, 예를 들어 iOS를 사용합니다. CFBundleShortVersionString 또는 안드로이드 versionName.

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

단점: 릴리즈 설정이 드리프트되면 플랫폼에 따라 달라질 수 있으므로 변경이 필요합니다.

대분류

Compare it with remote bundle versions, channel semver rules, or upload constraints such as --native-version.

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

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

이 테스터에 대해, 기기에서 보내는 네이티브 기본선에 입력하세요 version_build그런 다음 Capgo를 원하는远程 버전과 비교합니다. 원하는 버전을 전달하기 위해 Capgo를 사용합니다.

Capgo가 왜 Semantic Versioning을 사용하는가

Semantic Versioning 소프트웨어 개발에서 가장 널리 채택된 버전 관리 표준인 Semantic Versioning을 사용하여 Capgo는 Capacitor 앱에 대한 실시간 업데이트를 전달할 때 호환성과 안전성을 보장합니다.

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

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

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

Flexible Semver Strategies: Beyond Basic Versioning

세밋 버전을 확장하는 방법 pre-release identifiers and build metadata:

🏷️ Build Metadata (+) - The "Cosmetic" Layer

1.2.0+20240315.142530
배포 추적을 위한 타임스탬프
1.2.0+ui.refresh.dark-mode
디자인 팀을 위한 UI 업데이트 설명
1.2.0+build.4729.commit.a1b2c3d
CI/CD 빌드 번호와 git 커밋

중요: __CAPGO_KEEP_0__의 업데이트 로직에서 버전 우선 순위에 무시되는 메타데이터입니다. 1.2.0+anything equals 1.2.0 Capgo의 업데이트 로직에 대해.

🔧 개발 채널 (-) -

1.3.0-beta.1
Beta 테스트 채널
1.3.0-hotfix.payment
급박修정 branch
1.3.0-feature.newapi
기능 branch 테스트

주의: 이전 버전보다 낮은 우선 순위를 가진 프리 리리즈 버전입니다. 1.3.0-beta.1 < 1.3.0

🎯 Hybrid Approach - Best of Both Worlds

1.3.0-rc.1+ui.redesign.20240315
Release candidate with UI metadata and timestamp

실용적인 Semver 사용 사례 및 팀 전략

🚀 Startup / 빠른 개발

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 → 분기별 출시
2.1.1+sec.patch.cve2024 → __CAPGO_KEEP_0__
2.2.0-rc.1+audit.ready → __CAPGO_KEEP_0__

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 → 타임스탬프와 함께 릴리즈

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

🌍 다중 플랫폼 전략

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 → 프로덕션 배포

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

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

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

npm의 semver implementation과 달리 Capgo은 공식 SemVer 규격을 엄격하게 따릅니다. npm의 node-semver는 규격에서 알려진 편차를 가지고 있어 예상치 못한 동작을 유발할 수 있습니다.

예를 들어 npm은 버전을 다음과 같이 다르게 처리합니다. 1.0.0-alpha.1 differently는 __CAPGO_KEEP_0__에서 다르게 처리합니다. __CAPGO_KEEP_0__의 의미 버전 관리 규칙에 대한 자세한 내용은 보고된 이슈 미 병합된 시도

정상적인 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 업데이트 동작

작은 전략은 동일한 major.minor 라인 내에서 패치 변경을 허용합니다. 예를 들어 1.0.0 -> 1.0.1
패치 전략은 1.0.0 -> 1.0.1을 차단합니다. 단, 접미사 변경만 허용합니다. 예를 들어 1.0.0-beta.1 -> 1.0.0-beta.2
주 전략은 대상 번들을 native baseline보다 높은 major로 차단합니다. 예를 들어 1.0.0 -> 2.0.0
다운그레이드 보호는 stable 1.0.0이 1.0.0-beta.2보다 새로운 버전임을 의미합니다.

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