내용으로 건너뛰기

__CAPGO_KEEP_3__

Live Update 채널은 특정 JS 번들 빌드에 대한 링크를 제공하며, 이 채널을 듣기 위해 구성된 모든 기기에 업데이트를 공유합니다. Live Update를 __CAPGO_KEEP_0__에 __CAPGO_KEEP_1__로 설치하면, 채널에 구성된 모든 네이티브 바이너리는 앱이 실행될 때마다 업데이트가 있는지 확인합니다. 채널이 가리키는 빌드를 언제든지 변경하거나 이전 빌드로 롤백할 수 있습니다. install the Capgo Live Updates SDK 채널은 업데이트를 제어하지만 번들 비밀성을 제공하지 않습니다. 채널이 개인화되거나 자체 할당이 비활성화되어도 __CAPGO_KEEP_0__에 업로드된 암호화되지 않은 번들은 여전히 공개 자산으로 취급되어야 합니다. 배포 경로와 업데이트의 справж성을 보호하는 암호화는 배포된 앱을 충분한 노력으로 역 엔지니어링할 수 있지만, 공개 키는 클라이언트에 포함되어 있기 때문입니다. 자세한 내용은

Capgo이 업데이트 확인 시 장치가 사용할 채널을 다음 순서로 우선 순위로 결정합니다 (가장 높은 우선 순위부터):

  1. 강제 장치 매핑 (대시보드) – 특정 장치 ID를 채널에 매핑하여 긴급 디버깅 또는 단일 실제 사용자와 제어된 테스트에 사용합니다. 항상 우선합니다.
  2. Cloudflare override (per-장치) via 대시보드 또는 API – 대시보드 또는 API에서 장치의 채널을 변경할 때 생성됩니다. QA 사용자가 기능 / PR 채널 또는 사용자 문제를 재현하기 위해 채널을-switching합니다. 바이너리 재설치를 통해 삭제되지 않으며 장치 항목을 삭제하면 삭제됩니다.
  3. 플러그인 setChannel() local channel – 앱이 호출하고 백엔드가 대상 채널이 자체 할당을 허용하는지 확인할 때 생성됩니다. 선택된 채널은 즉시 적용되고 장치에 저장되며 대시보드 UI의 장치 Override UI에 표시되지 않습니다. setChannel() setChannel()을 사용한 즉시 채널 Switching
  1. Capacitor config defaultChannel (test build default) – If present in capacitor.config.* Cloud Default Channel (primary path ~99%의 사용자) beta, qa, pr-123– 만 dashboard에서 기본 채널을 표시하면, 모든 일반 사용자 (force, dashboard override, plugin local channel, config defaultChannel이 없는 사용자)는 여기에 연결됩니다. 기본 채널을 변경하면 즉시 배포 또는 롤백할 수 있습니다. 새로운 바이너리가 필요하지 않습니다. 플랫폼에 따라 기본 채널을 설정할 수 있습니다 (예: iOS 전용, Android 전용, Electron 전용). 각 기기는 자신의 플랫폼에 맞는 기본 채널에 연결됩니다. Cloud Default 채널을 비워두는 것은 허용되며, 이 경우 기기는 1-4 단계를 따라야 업데이트 받을 수 있습니다.
  2. Best practice: – If you mark a default channel in the dashboard, all normal end‑users (no force, no Dashboard/API override, no plugin local channel, no config defaultChannel) attach here. Change it to roll out or roll back instantly—no new binary. If you have platform-specific defaults (for example, one iOS-only, one Android-only, one Electron-only), each device lands on the default matching its platform. Leaving the cloud default unset is allowed; in that case the device must match on steps 1–4 to receive updates.

Only configure

  • Cloud Default 채널을 테스터에게 배포하는 바이너리에서만 설정하세요. Cloud Default 채널을 비워두면, 프로덕션 로직이 중앙에서 관리됩니다. defaultChannel Use
  • Cloud Default 채널을 프로덕션에서 사용할 때는 주의해서 사용하세요. 주로 QA 또는 대상 진단에 사용합니다. defaultChannel 기본 채널이 플랫폼 (iOS/Android/Electron)에서 비활성화되어야 할 때, 선택 프로세스는 해당 채널을 건너뛰고 목록을 계속 진행합니다.
  • and no force/override/local channel exists, the app starts on this channel (e.g. setChannel() ). TestFlight / 내부 빌드에 대한 목적이므로, 테스터는 자동으로 프리 리리즈 채널로 연결됩니다. 프로덕션 빌드는 일반적으로 이 설정을 비워둡니다.

Cloud Default Channel (primary path ~99%의 사용자)

Summary: Force > API Dashboard Override > 플러그인 setChannel() local channel > 설정 defaultChannel > Cloud 기본.

기본 채널 동작

제목 '기본 채널 동작'

클라우드 기본값을 설정하는 것은 선택사항이지만, 일반적으로 새로운 장치의 기본 경로로 사용됩니다. 기본값이 없으면, 강제 매핑, 오버라이드, 또는 __CAPGO_KEEP_0__ 설정에 맞는 장치만 업데이트를 받습니다. 기본값을 설정할 때는 다음 패턴을 기억하세요: defaultChannel in the Capacitor config will receive updates. When you do choose to mark defaults, keep these patterns in mind:

  • – iOS, Android, Electron이 모두 활성화된 채널이면, 단일 기본값이 됩니다. 오버라이드가 없는 장치들은 이곳에 연결됩니다. 플랫폼별 기본값
  • – 플랫폼별로 채널을 나누면 (예를 들어, iOS만 활성화된 경우, 기본값이 없으면, 강제 매핑, 오버라이드, 또는 __CAPGO_KEEP_0__ 설정에 맞는 장치만 업데이트를 받습니다. 기본값을 설정할 때는 다음 패턴을 기억하세요: ios-production 단일 기본값 (가장 일반적인 경우) android-production Android만 활성화되어 있고, electron-production Electron만 활성화되어 있는 경우 각각의 플랫폼의 기본값으로 표시합니다. iOS 기기는 iOS 기본값으로, Android 기기는 Android 기본값으로, Electron 앱은 Electron 기본값으로 이동합니다.

클라우드 기본값과 defaultChannel 두 개는 동일한 결정层을 차지합니다. 클라우드 기본값을 설정하면 __CAPGO_KEEP_0__ 구성에서 값을 중복해서 입력할 필요가 없습니다—생산 빌드용으로 빈칸을 남겨두세요. capacitor.config.* both occupy the same decision layer. If you set a cloud default, you don’t need to duplicate the value in your Capacitor config—leave defaultChannel 클라우드 기본값을 변경할 수 있습니다. 채널을 바꿀 때, 새로운 기기는 즉시 새로운 라우팅을 따르며 기존 기기는 다음에 체크인할 때 정상 순위 규칙을 따릅니다. defaultChannel 채널 설정

온보딩 중에 첫 번째 채널을 생성합니다(대부분의 팀은 이를 '생산'이라고 이름짓습니다). 그러나 아무것도 잠금되지 않습니다—채널을 언제든지 이름을 바꾸거나 삭제할 수 있습니다. 추가 채널을 설정하려면:

__CAPGO_KEEP_0__ 대시보드의 '채널' 섹션으로 이동하세요

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

  1. Capgo
  2. Click the “New Channel” button
  3. __CAPGO_KEEP_0__를 클릭하세요.

Channel names can be anything you’d like. A common strategy is to match channels to your development stages, such as:

  • Development - 로컬 장치 또는 시뮬레이터에서 실시간 업데이트를 테스트하는 경우
  • QA - QA 팀이 더 넓은 릴리스 전에 업데이트를 확인하는 경우
  • Staging - 실제 환경과 유사한 환경에서 최종 테스트하는 경우
  • Production - 앱 스토어에서 사용자에게 제공되는 앱 버전

채널을 생성한 후, App을 구성하여 해당 채널을 듣도록 설정해야 합니다. 이 예에서는 Development channel.

__CAPGO_KEEP_1__를 열어보세요. capacitor.config.ts (or capacitor.config.json) 파일. plugins 섹션 하위에, 옵션적으로 설정 defaultChannel 테스트 빌드 내부 / QA) 빌드. 프로덕션 빌드의 경우 Cloud Default를 사용하도록 하며, 명시적으로 재정의하지 않는 한. 클립보드 복사

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
// For a QA/TestFlight build – testers start on the Development channel automatically.
defaultChannel: 'Development',
// Production builds usually omit this so users attach to the Cloud Default channel.
},
},
};

업데이트된 config 파일을 iOS, Android, 및 Electron 프로젝트에 복사하기 위해 npx cap sync 이 동기화 단계를 건너뛰면, 이전에 구성된 채널을 계속 사용하는 native 프로젝트가 계속됩니다.

채널 옵션 및 전략

채널 옵션 및 전략

채널에는 업데이트 받을 수 있는 사람과 업데이트 전달 방법을 제어하는 여러 옵션이 있습니다. 가장 중요한 옵션은 아래에 있습니다. 웹 앱, CLI, 또는 Public API에서 이 옵션을 구성할 수 있습니다.

  • 기본 채널: 새로운 장치가 채널 또는 플랫폼에 특정한 채널에 연결할 때 옵션을 마크할 수 있습니다. 기본 채널 동작을 참조하십시오.
  • 플랫폼 필터: iOS, Android또는 Electron __CAPGO_KEEP_0__
  • __CAPGO_KEEP_1__
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_1__
  • __CAPGO_KEEP_0__ setChannel__CAPGO_KEEP_1__ setChannel __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__ __CAPGO_KEEP_0__ for the delivery model, dashboard workflow, API fields, and CLI commands.

자동 업데이트 전략 비활성화

자동 업데이트 전략 비활성화 섹션

이 옵션을 사용하여 채널이 자동으로 전달할 수 있는 업데이트의 종류를 제한할 수 있습니다. 옵션:

  • major: 기기 기본선에 비해 주요 버전이 높은 대상 패키지를 차단합니다. 예시:version_build차단됨; 1.2.3 -> 2.0.0 허용됨. 1.2.3 -> 1.9.0 minor: 기기 기본선에 비해 주요 또는 부수 버전이 다른 대상 패키지를 차단합니다. 예시:
  • 차단됨; version_build허용됨. 1.2.3 -> 1.3.0 patch: 가장 엄격한 모드입니다. 주요, 부수, 또는 패치 번호의 변경을 차단합니다. 단, 접미사 변경만 허용됩니다. 1.2.3 -> 1.2.4 __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__ MAJOR.MINOR.PATCH __CAPGO_KEEP_0__ 1.0.0-beta.1 -> 1.0.0-beta.2 예시: 1.0.0+build.1 -> 1.0.0+build.2 업데이트가 허용됩니다. 1.0.0 -> 1.0.1 업데이트가 허용되지 않습니다.
  • metadata: Require a minimum update version metadata on each bundle. Configure via CLI using --min-update-version metadata: 각 번들에 최소 업데이트 버전 메타데이터가 필요합니다. __CAPGO_KEEP_0__을 사용하여 구성합니다. --auto-min-update-version또는
  • . 채널이 미설정되어 있는 경우 채널이 미설정되어 있는 것으로 표시되고 업데이트가 거부됩니다. none: __CAPGO_KEEP_0__에 따라 모든 업데이트를 허용합니다..

semver 호환성 version_build이 전략은 채널의 대상 번들을 native baseline으로 비교합니다. __CAPGO_KEEP_1__으로 전송된 것이 아니라 __CAPGO_KEEP_2__으로 전송된 것을 비교합니다. version_name.

Learn more details and examples in Disable updates strategy at /docs/cli/commands/#disable-updates-strategy.

예시 (CLI):

터미널 창
# Block major updates on the Production channel
npx @capgo/cli@latest channel set production com.example.app \
--disable-auto-update major
# Allow devices to self-assign to the Beta channel
npx @capgo/cli@latest channel set beta com.example.app --self-assign

Your App에서 setChannel() 사용

Using setChannel() from Your App

The setChannel() 이 메소드는 앱이 런타임에 채널을 프로그래밍적으로switch할 수 있게 해줍니다. 이 기능은 특히 다음 경우에 유용합니다.

  • QA/테스트 메뉴에서 테스터가 채널을 switch할 수 있게 해줍니다.
  • Beta 프로그램 옵인 플로우
  • 기능 플래그 구현
  • A/B 테스트 시나리오
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channel
await CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switching
await CapacitorUpdater.setChannel({
channel: 'beta',
triggerAutoUpdate: true
});

버전 태그를 참조하세요.

채널에 번들을 할당하는 방법

To Capgo CLI을 업로드하고 채널에 assign하면 live update를 배포할 수 있습니다.

터미널 창
npx @capgo/cli@latest bundle upload --channel=Development

__CAPGO_KEEP_0__의 "Bundles" 섹션에서 빌드를 채널에 assign할 수 있습니다. 메뉴 아이콘을 클릭하고 "Assign to Channel"을 선택하여 빌드에 채널을 선택하세요. Development 채널 버전 관리

You can also assign builds to channels from the “Bundles” section of the Capgo dashboard. Click the menu icon next to a build and select “Assign to Channel” to choose the channel for that build.

__CAPGO_KEEP_0__의 배포본은 앱에 전역적이므로, 채널에 특정되지 않습니다. 동일한 배포본을 여러 채널에 assign할 수 있습니다.

버전을 관리할 때는 __CAPGO_KEEP_0__의 Semver Tester와 pre-release identifiers를 사용하는 것을 추천합니다.

It’s important to note that bundles in Capgo are global to your app, not specific to individual channels. The same bundle can be assigned to multiple channels.

__CAPGO_KEEP_0__ Capgo __CAPGO_KEEP_0__ 1.2.3-beta.1.

이 접근 방식에는 여러 이점이 있습니다.

  • 빌드 간의 관계를 명확하게 전달합니다. 1.2.3-beta.1 obviously는 prerelease입니다. 1.2.3.
  • 버전 번호를 여러 채널에서 재사용할 수 있으므로 혼란을 줄입니다.
  • 역할백 경로를 명확하게 제공합니다. 역할백이 필요할 때 1.2.3를 알면 1.2.2 는 이전 안정 버전입니다.

채널 설정의 일반적인 경우와 버전을 일치시키는 방법에 대한 예를 들어 보겠습니다.

  • Development 채널: 1.2.3-dev.1, 1.2.3-dev.2, etc.
  • QA 채널: 1.2.3-qa.1, 1.2.3-qa.2, etc.
  • Staging 채널: 1.2.3-rc.1, 1.2.3-rc.2, 등
  • Production 사용 1.2.3, 1.2.4pre-release 식별자와 함께 semver를 사용하는 것은 권장되는 방법이지만, 엄격히 필요하지는 않습니다. 중요한 것은, 빌드 간의 관계를 명확하게 전달하고, 팀의 개발 프로세스와 일치하는 버전 관리 방식을 찾는 것입니다.

실시간 업데이트 롤백 제목: 실시간 업데이트 롤백 버그나 롤백이 필요한 실시간 업데이트 배포 시, 이전 빌드로 쉽게 롤백할 수 있습니다. 대시보드의 '채널' 섹션에서:

versioning scheme

  1. development process
  2. previous build 롤백 빌드
  3. 확인

선택한 빌드는 즉시 해당 채널의 활성 빌드로 변환됩니다. 앱은 업데이트를 확인할 때 다음으로 롤백된 버전을 받게 됩니다.

배포 자동화

배포 자동화

더 복잡한 워크플로우를 위해, 라이브 업데이트 배포를 CI/CD PIPELINE의 일부로 자동화할 수 있습니다. Capgo을 빌드 프로세스에 통합하면, 특정 branch로 푸시하거나 새로운 릴리즈를 만들 때마다 새로운 배ंडल을 자동으로 업로드하고 채널에 assign할 수 있습니다.

더 알아보기 CI/CD 통합 docs를 참조하여 Capgo 라이브 업데이트 자동화에 대해 더 알아보세요.

권한 제한 PR 미리보기

권한 제한 PR 미리보기

사용 앱 미리보기 API 키는 CI가 pull request당 하나의 임시 채널이 필요하지만 기존의 main/default 채널을 관리하지 않아야 함. 이 키는 소유한 조직과 선택한 앱에 묶여 있지만 단순히 조직 내에서 역할을 수행하지 않습니다. 각 비공개 미리보기 채널은 자동으로 채널 범위의 라이프 사이클 권한을 받습니다.

  1. 조직 관리자가 미리보기 앱에 제한된 보안 API 키를 생성하고 선택하세요. 앱 미리보기. 참조 API 키.
  2. 미리보기 앱에 사용하는 유니크한 비공개 채널을 사용하십시오. pr-123rollout 옵션, 또는 --default, --self-assignPR 번들을 업로드하고 승격하고, PR가 닫히면 소유한 채널과 번들을 삭제할 수 있습니다. --delete-linked-bundle-on-upload.
  3. 터미널 창
클립보드에 복사
APP_ID="com.example.app"
PREVIEW_CHANNEL="pr-123"
BUNDLE_VERSION="1.2.3-pr.123"
npx @capgo/cli@latest bundle upload "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--path ./dist \
--channel "$PREVIEW_CHANNEL" \
--bundle "$BUNDLE_VERSION"
npx @capgo/cli@latest channel delete "$PREVIEW_CHANNEL" "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--delete-bundle \
--success-if-not-found

bundle upload --channel missing channel을 생성하고, 배포 파일을 업로드하고, 한 번에 전파합니다. 정리 작업은 원자적이고 소유권을 확인합니다: 키는 자신이 생성한 채널과 연결된, 공유되지 않은 배포 파일만 삭제할 수 있습니다. 키는 기존의 기본 채널, 다른 리뷰어의 채널, 다른 키의 배포 파일을 변경, 전파, 삭제할 수 없습니다.

리뷰어에게 QR code 또는 미리보기 URL이 필요하다면, 앱에 대한 미리보기 설정을 한 번만 활성화시킬 수 있습니다.

터미널 창
npx @capgo/cli@latest app set "$APP_ID" --preview
npx @capgo/cli@latest get-qr "$APP_ID" --channel "$PREVIEW_CHANNEL" --apikey "$CAPGO_PREVIEW_KEY" --url

App Preview 키는 미리보기 설정을 활성화할 수 없습니다. GitHub Actions에서, secret-bearing 미리보기 작업을 pull_requestpull_request_target로 제한하여, github.event.pull_request.head.repo.full_name == github.repository.

PRs에 제한합니다.

장치에 배포

장치에 배포

  1. Install the Capgo SDK in your app
  2. 앱에 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__을 설치합니다. 앱을 설정하여 원하는 채널을 듣도록 합니다.
  3. 채널에 업로드 한 빌드를 Assign하세요
  4. 앱을 실행하고 업데이트를 기다리세요!

자세한 설명을 위해서는 실시간 업데이트 배포 안내서를 참조하세요. 업데이트 하세요!

고급 채널 사용법: 사용자 구분

고급 채널 사용법: 사용자 구분

채널은 개발 단계에만 사용할 수 있는 것이 아닙니다. 사용자 구분을 위한 강력한 도구로, 다음 기능을 제공합니다.

  • 사용자 계층별 기능 플래그
  • A/B 테스트
  • 기능 출시를 위한 점진적 출시
  • 베타 테스트 프로그램

이용 사례를 구현하는 방법에 대해 우리의 가이드를 참조하세요: 기능 플래그 및 A/B 테스트를 위한 사용자 구분 및 채널 구분 방법.

채널에서 계속 진행하세요

채널에서 계속 진행하기

채널을 사용 중이라면 채널 라우팅 및 스테이지 롤아웃을 계획하는 데 도움이 됩니다. 채널과 연결하여 채널의 구현 세부 정보를 참조하세요. 채널의 구현 세부 정보를 참조하세요. 베타 테스트 솔루션 채널을 사용 중이라면 채널 라우팅 및 스테이지 롤아웃을 계획하는 데 도움이 됩니다. Beta 테스트 솔루션에서 제품 워크플로우를 위한 버전 대상 솔루션 버전 대상 솔루션에서 제품 워크플로우를 위한 Capgo 환경 최적화: 단일 모바일 앱 ID를 사용한 스테이징 Capgo 환경 최적화: 단일 모바일 앱 ID를 사용한 스테이징의 실제 적용 사례를 위한