__CAPGO_KEEP_0__ Live Update - __CAPGO_KEEP_1__ Cloud

Capgo Semver 테스터

채널 정책 호환성을 native baseline sent as version_build 에서 확인합니다.

Capgo 에게 version_build로 전송된 native 버전, config 또는 native 앱 메타데이터에서.

채널에서 해결된 버전에 assign된 버스.

두 개의 의미론적 버전을 입력하여 비교를 보려면

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

네이티브 기본 버전은 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+20240315.142530
배포 추적을 위한 타임스탬프
1.2.0+ui.refresh.dark-mode
디자인 팀을 위한 UI 업데이트 설명
1.2.0+build.4729.commit.a1b2c3d
CI/CD 빌드 번호와 Git 커밋

중요: 버전 순위에서 빌드 메타데이터는 무시됩니다 - 1.2.0+anything equals 1.2.0 Capgo의 업데이트 로직에 대해

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

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

주의: __CAPGO_KEEP_0__ 1.3.0-beta.1 < 1.3.0

__CAPGO_KEEP_0__

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

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

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

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 업데이트 동작

마이너 전략은 동일한 메이저.마이너 라인 내에서 패치 변경을 허용합니다. 예를 들어 1.0.0 -> 1.0.1
패치 전략은 1.0.0 -> 1.0.1을 차단합니다. 메이저.마이너 라인 내에서 패치 변경 외에는 다른 변경을 허용하지 않습니다. 예를 들어 1.0.0-beta.1 -> 1.0.0-beta.2
메이저 전략은 대상 번들을 메이저 버전이 더 높은 경우 차단합니다. 예를 들어 1.0.0 -> 2.0.0
다운그레이드 보호는 전체 세미버전을 사용하여 stable 1.0.0이 1.0.0-beta.2보다 새로운 버전임을 의미합니다.

이 도구는 공식 세미버전 명세를 따릅니다. npm의 implementation과는 다릅니다.