Capgo는 Capacitor 앱의 버전을 관리하기 위해 두 가지 주요 변수를 사용합니다:
- Native 버전
- JavaScript 버전
모든 버전 선택은 Capgo에 의해 서버에서 결정됩니다.
버전 관리 시스템
Capgo 버전을 관리하려면 SemVer 시스템을 사용하세요. 다음 문서를 읽어 보세요: SemVer 명세 또는 Capgo 업데이트 호환성을 다음으로 확인하세요: Semver 테스터.
버전
비교할 버전은 Capgo에서 찾을 수 있습니다.
version 키를 설정하면 이 동작을 재정의할 수 있습니다.
capacitor.config.json파일 문서 확인하기 모든 플랫폼에서 네이티브 버전은 무시됩니다.
iOS
iOS에서는 프로젝트의 다음 위치에서 변수가 설정됩니다 ios/App/App/Info.plist 해당 키 아래에CFBundleShortVersionString 또는 ios/App/App.xcodeproj/project.pbxproj 해당 키 아래에 MARKETING_VERSION 만약 MARKETING_VERSION 사용자 환경에 설정되었습니다 Info.plist 다운로드됩니다.
Android
Android에서는 프로젝트의 이 위치에서 var를 설정합니다 android/app/build.gradle 해당 키 아래에 defaultConfig.versionName
JavaScript ( Capgo 번들 버전 )
JavaScript에서는 다음 위치에서 var를 설정할 수 있습니다 package.json 해당 키 아래에 version
그렇지 않으면 upload 명령에서 지정해야 합니다.
기본 동작
설정을 변경하지 않았다면 Capgo channel은 다음과 같이 동작합니다.
이 동작은 기본값으로 설정한 고유 channel을 기준으로 합니다.
Capacitor 앱을 새로 설치할 때
사용자가 Ionic 앱을 처음 다운로드한 뒤 앱을 열면 Capgo 서버에 접속합니다.
현재 다음과 같은 4가지 결과가 발생할 수 있습니다:
- Native bundle 버전(1.2.3)이 Capgo bundle 버전(1.2.4)보다 낮으면, Capgo이 사용자에게 bundle을 전송합니다.
- Native bundle 버전(1.2.3)이 Capgo bundle 버전(1.2.3)과 같으면, Capgo은 “업데이트 필요 없음”을 보냅니다.
- Native bundle 버전(1.2.4)이 Capgo bundle 버전(1.2.3)보다 높으면, Capgo은 “업데이트 필요 없음”을 보냅니다.
- Native bundle 버전(1.2.3)이 Capgo bundle 버전(2.2.3)보다 MAJOR 버전이 낮으면, Capgo은 “업데이트 불필요”를 보냅니다.
기타 설정
Native 환경에서 자동 다운그레이드 비활성화
이 설정을 false로 변경하면 Capgo은 항상 버전의 신뢰할 수 있는 소스로 간주합니다. 그러면 동작 방식은 다음과 같습니다:
- Native 버전(1.2.4)이 Capgo 버전(1.2.3)보다 높은 경우
Capgo이 사용자에게 자신의 버전을 전송합니다.
자동 업그레이드 전략 비활성화
선택할 수 있는 전략이 몇 가지 있습니다. 자세한 내용은 여기에서 확인하세요. 여기
JavaScript bundle 버전
JavaScript bundle 버전은 다음을 실행할 때 보내는 버전입니다. npx @capgo/cli@latest bundle upload --channel production
해당 옵션을 사용하지 않았다면 --bundle 1.2.3, Capgo는 파일의 package.json version key에서 bundle 버전을 가져옵니다.
Ionic 앱이 Capgo에서 한 버전을 설치한 후에는, 이 버전이 다음 비교의 기준이 됩니다:
- JavaScript bundle 버전(1.2.3)이 Capgo bundle 버전(1.2.4)보다 낮으면, Capgo이 사용자에게 bundle을 전송합니다.
몇 가지 가드 조건이 있습니다:
- Native bundle 버전이 Capgo 버전보다 높으면,
Disable auto downgrade under native조건이 적용됩니다. - Native bundle 버전의 MAJOR가 Capgo 버전보다 낮으면,
Disable auto upgrade above major조건이 적용됩니다.
App Store 업데이트
Capacitor JS 앱을 App Store에 출시하면 동작은 간단합니다.
사용자는 스토어에서 새 버전을 받고, 기본적으로 앱의 모든 로컬 업데이트가 삭제됩니다.
해당 동작을 변경하려면 설정을 조정해야 합니다. resetWhenUpdate 자세한 내용은 여기에서 확인하세요 여기
다른 설정과 달리 클라우드가 아닌 앱 측에서만 변경할 수 있습니다.
기타 설정
이러한 기본 동작 외에도 deviceID별로 특정 동작을 지정할 수 있습니다.
Capgo에서 각 deviceID에 대한 동작을 직접 오버라이드할 수 있습니다.
하나의 deviceID를 다음 중 하나에 연결할 수 있습니다:
- 특정 bundle 버전
- 특정 channel
이 설정은 위에서 설정한 모든 내용을 무시합니다.
자세한 내용은 아래 글을 참고하세요.
‘Capgo의 버전 작동 방식’부터 이어보기
사용 중이라면 Capgo의 버전 관리 방식 네이티브 플러그인 작업을 계획하려면, 이를 다음 항목과 연결하세요: Capgo 플러그인 디렉토리 Capgo Plugin Directory의 제품 워크플로우에 맞춰, Capgo의 Capacitor 플러그인 Capgo의 Capacitor 플러그인 구현 상세 내용에 대해서는, 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 사항은, Ionic Enterprise 플러그인 대안 Ionic Enterprise 플러그인 대안의 제품 워크플로우와, Capgo Native Build Capgo Native Builds의 제품 워크플로우를 위해.