본문으로 건너뛰기
튜토리얼

Capgo 환경 최적화: 단일 모바일 앱 ID를 사용하여 스테이징, QA 및 프로덕션

실무 가이드: Capgo 채널을 사용하여 QA, 스테이징, 및 프로덕션을 위한 Capacitor 앱의 중복 앱 ID 및 약한 런타임 플래그를 피하는 방법

기사 저자

마틴 도나디유

작가

발레리아

리뷰어

조던

편집자

Capgo 환경 최적화: 단일 모바일 앱 ID를 사용한 스테이징

팀들은 일반적으로 모바일 환경을 위해 세 가지 접근 방식을 선택합니다.

  1. 두 개의 앱 ID(생산 + 미리 제작)
  2. 하나의 앱 ID + 동적 런타임 환경switching
  3. 하나의 앱 ID + Capgo 채널

첫 두 가지 접근 방식은 작동할 수 있지만, 실제 팀에서는 Capgo 채널 모델이 일반적으로 가장 깨끗합니다.

왜 중복된 앱 ID가 노이즈가 되는가

Using com.myapp 그리고 com.myapp.beta __CAPGO_KEEP_0__

  • 두 개의 릴리스 PIPELINE
  • 두 개의 PUSH ID, 깊은 링크 및 권한 매핑
  • 두 개의 분석 및 충돌 식별자
  • 환경 간에 다르며 구성 및 동작이 일관되지 않는 경우

스토어 콘솔, 팀 및 내부 QA 지침을 관리하는 두 개의 제품이 있습니다.

런타임 Switching Config이 왜 복잡한가요

‘한 앱 ID + 런타임 Switch’ 패턴은 일반적으로 앱이 시작 시 환경 변수 또는 플래그를 읽고 API, 키 및 업데이트 동작을 동적으로 라우팅합니다.

이것은 다음까지 작동합니다.

  • QA 팀이 의도하지 않은 흐름을 우회하는 경우
  • someone이 프로덕션에서 잘못된 엔드포인트를 사용하는 경우
  • 환경 드리프트가 복잡한 버그를 일으키는 경우
  • 사용자 기기에서 ‘이 바이너리가 사용하는 구성 버전은 무엇인가요?’를 디버그해야 하는 경우

그것은 각 릴리스마다 복잡도가 증가하고 팀의 속도가 느려지는 곳입니다.

Capgo 방식: 하나의 앱 ID, 여러 채널

Capgo는 환경 제어를 명확하게 하는 채널을 통해 이루어진다:

  • App Store / Play에서 하나의 프로덕션 앱 ID를 유지하세요.
  • “쉘” (원래의 네이티브 변경이 실제로 다시 빌드가 필요한 경우) 에 대한 한 개의 네이티브 바이너리를 배포하세요.
  • 채널 대신 중복된 앱 식별자로 동작하지 않도록 동작을 라우팅하세요.

이것은 실제로 다음과 같은 것을 의미합니다:

  • production모든 사용자
  • staging내부 QA 및 릴리스 후보
  • beta초대된 테스터
  • hotfix긴급 패치 트랙

Your TestFlight / Play 내부 테스트 앱은 여전히 staging 영원히. JS/CSS/자산 업데이트를 Capgo에서 반복적으로 수행하여 새로운 네이티브 앱을 배포하지 않습니다.

1) 네이티브 릴리스 기준

네이티브 바이너리가 여러 JS 반복에서 동일하게 유지됩니다:

bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual

네이티브 표면 영역이 실제로 변경되었을 때만 네이티브 바이너리를 다시 빌드합니다.

2) 환경별 전용 채널 사용

채널을 사용하여 업데이트를 배포:

bun run build
bunx @capgo/cli deploy --channel staging

QA에서 테스트하고 문제를 해결한 후 승격:

bunx @capgo/cli promote vX.Y.Z --channel production

버전을 명시적으로 관리하는 경우:

bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production

3) 테스트 플라이트는 '항상 전제 생산'을 유지합니다.

iOS 워크플로우에서 이 의미는 테스트 플라이트 빌드가 전제 생산 업데이트와 연관되어 유지됩니다:

  • 각 JS 변경에 대한 빈번한 네이티브 제출이 없습니다.
  • QA는 실제 운영 code을 확인하기 위해 스테이징 채널을 통해 검증합니다.
  • 운영 사용자는만 승인된 운영 채널 패키지를 받습니다.

4) 제어된 워크플로우에만 채널 Switch를 사용하십시오.

고급 팀에게는 QA/관리자 사용자에게 제어된 채널 Switch를 노출하십시오:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({
  channel: 'staging',
  triggerAutoUpdate: true
});

이것은 선택사항입니다. 대부분의 팀은 대시보드에서 채널 assignments를 사용하고 내부 사용자만 아니라 모든 고객에게 채널 Switch를 사용하지 않습니다.

운영 절차 목록

  • 1개의 앱 ID만 사용하십시오 (중복된 운영/스테이징 ID 없음)
  • 1개의 기본 네이티브 빌드 PIPELINE만 사용하십시오
  • 채널 mapping 문서화 (staging, beta, production, hotfix)
  • CI/CD에서 승인된 운영 채널 패키지로의 승진 경로가 강제됩니다.
  • 네이티브 빌드만 네이티브 변경 사항이 있을 때만 다시 빌드하십시오.
  • 롤백 테스트는 정기적으로 수행됩니다.

실용적인 이점

이 접근 방식은 환경漂移을 제거하고 빌드 충돌을 줄이고修정을 가속화합니다:

  • QA가 실제 바이너리를 받을 수 있고 (가짜 '스테이징 앱' 식별자가 없음),
  • 테스트 플라이트 경로가 안정적이므로
  • 팀이 '두 앱 ID 부채'를 피할 수 있습니다.
  • JS-만의 수정을 Capgo에서 빠르게 푸시할 수 있습니다.

결과적으로, 관리는 더 단순해집니다: fewer artifacts, cleaner telemetry, 그리고 릴리스 운영에서 더 많은 놀람이 없습니다.

다음으로 Capgo Environment Best Practices: Staging with One Mobile App ID로 계속하세요.

__CAPGO_KEEP_0__ Environment Best Practices: Staging with One Mobile App ID를 사용하는 경우 Capgo 환경 최적화 방법: 단일 모바일 앱 ID를 사용한 스테이징 채널 Channels Channels 채널 Channels 채널 Channels 베타 테스트 솔루션 Channels 채널 버전 대상 솔루션

Capacitor 앱에 대한 즉시 업데이트

웹层 버그가 활성화된 경우, Capgo을 통해 픽스를 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 마십시오. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

마틴의 인간 지원

시작하기

최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.