메인 콘텐츠로 바로 가기

Capgo Semver 테스터

채널 정책과 원본 버전을 비교합니다.

원본 버전은 Capgo에 version_build로 전송된 버전입니다. config 또는 native app metadata에서 가져옵니다.

해당 채널에 할당된 버전입니다.

두 개의 의미론적 버전을 입력하여 비교

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

네이티브 기본 버전은 장치가 업데이트 서버에서 버블을 요청할 때 Capgo로 전송하는 네이티브 앱 버전입니다. version_build 네이티브 기본 버전은 Capacitor 앱에서 해당 값이 오는 경우가 있습니다. CapacitorUpdater.version in capacitor.config.*. iOS 또는 Android에서 native 앱 버전으로 돌아갑니다. package.json 버전이 아니라고 가정하지 마십시오.

Capgo가 여전히 version_name __CAPGO_KEEP_0__를 사용하여 다운로드 한 번들을 현재 설치된 것인지 알 수 있습니다. major, minor, and patch , version_build.

remote 번들을 Capacitor config

설정할 때 CapacitorUpdater.version 설정할 때

설정할 때 설정할 때

설정할 때 업데이트를忘고 네이티브 릴리즈 전에 구성 파일이 오래되어 버전이 잘못 보고될 수 있습니다.

네이티브 앱 버전

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

장점: 테스트 플라이트, 앱 스토어, 플레이 스토어, 또는 내부 테스트에서 설치한 사용자에 의해 설치된 바이너리와 일치합니다.

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

배포 대상

remote bundle 버전, 채널 semver 규칙, 또는 메타데이터 업로드 제약 조건과 비교하세요. 예를 들어 --min-update-version채널은 반드시 --disable-auto-update metadata.

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

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

이 테스터에 대해, 기기에서 보낸 네이티브 기본선에 __CAPGO_KEEP_0__를 입력하고, 원하는 __CAPGO_KEEP_0__가 전달할远程 번들을 비교하세요. version_buildwhy Capgo이 의미론적 버전을 사용하는지

왜 Capgo은 의미적 버전 관리를 사용합니까?

__CAPGO_KEEP_0__이 의미론적 버전을 사용하여 __CAPGO_KEEP_1__ 앱에 대한 라이브 업데이트를 전달할 때 호환성과 안전성을 보장합니다. is the most widely adopted versioning standard in software development. By using semver, Capgo ensures compatibility and safety when delivering live updates to your Capacitor apps.

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

  • 버그 수정, 자동으로 적용할 수 있습니다. 소수점 업데이트(1.0.0 → 1.1.0):
  • 소수점 업데이트는 새로운 기능을 추가하거나 API를 변경할 때 사용됩니다. 새로운 기능, 뒤로 호환성
  • 주요 업데이트 (1.0.0 → 2.0.0): 파괴적인 변경, 네이티브 앱 스토어 릴리즈 필요

이것은 Capgo가 네이티브 code에 불일치한 업데이트를 보내지 못하도록 막아, 사용자에게 충돌을 방지하고 앱이 안정적으로 유지되도록 보호합니다.

가변 Semver 전략: 기본 버전 관리를 넘어

세밋버는 핵심 형식에 대해 엄격하지만, 팀의 필요에 따라 확장할 수 있습니다. 이전 릴리즈 식별자 그리고 페이지/영역: Capgo 마케팅 웹사이트. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 보이는 곳: trust.astro 페이지. 메시지 키 `and` (And).:

빌드 메타데이터

1.2.0+20240315.142530
🏷️ 빌드 메타데이터 (+) - 외관적인 층
배포 추적을 위한 타임스탬프
UI 업데이트 설명
1.2.0+build.4729.commit.a1b2c3d
CI/CD 빌드 번호 및 Git 커밋

중요: 버전 순위에서 빌드 메타데이터는 무시되며 1.2.0+anything equals 1.2.0 Capgo의 업데이트 논리에서

🔧 미리 출시 식별자 (-) - 개발 채널

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

주의: 미리 출시 버전은 낮은 우선 순위 - 1.3.0-beta.1 < 1.3.0

🎯 하이브리드 접근 방식 - 양쪽의 최선

1.3.0-rc.1+ui.redesign.20240315
UI 메타데이터와 타임스탬프가 있는 릴리즈 후보

실제 세계 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 → 분기별 릴리즈
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 → 자산 업데이트

콘텐츠 추적용 창의적 메타데이터

⚡ Hotfix 전략

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 → Staging 배포
1.4.0+prod.final.789 → Production 배포

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

💡 Pro 팁:
  • 빌드 메타데이터 (+)를 사용하여 추적, 타임스탬프, 또는 호환성에 영향을 주지 않는 외관 정보를 추적하세요.
  • 개발 채널이 다른 업데이트순위가 필요한 경우 개발 채널을 나타내는 프리릴리즈 식별자 (-)를 사용하세요.
  • 최대 유연성을 위해 두 가지를 모두 사용하세요: 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 규격에서 요구하는 것과 다르게 __CAPGO_KEEP_0__은 버전을 다르게 처리합니다. 자세한 내용은 reported issue 그리고 수정 시도 병합되지 않은

유효한 Semantic Versions

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 Versions

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
⚠ 다운그레이드 보호는 전체 semver 우선순위를 사용하여, 안정적인 1.0.0은 1.0.0-beta.2보다 새로운 버전입니다.

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