브랜드 변형이 빠르게 늘어납니다
고객마다 자체 로고, 테마, 기능 세트, 콘텐츠, 출시일을 원합니다. 별도 포크는 이런 요구를 매 릴리스마다 유지보수 비용으로 바꿉니다.
화이트라벨 및 멀티테넌트 앱
각 테넌트, 브랜드 또는 위치별로 고유한 Capgo 채널을 제공하세요. 다른 테넌트에 영향을 주지 않고 특정 테넌트의 웹 레이어만 업데이트할 수 있으며, Capgo Build로 브랜드 맞춤형 네이티브 셸을 구축할 수 있습니다.
14일간 무제한 무료 체험. 카드 등록 불필요 14일 이내 환불 보장. 언제든 취소 가능.
Shell
Capacitor 앱
Tenants
채널
네이티브
Capgo 빌드
문제점
고객마다 자체 로고, 테마, 기능 세트, 콘텐츠, 출시일을 원합니다. 별도 포크는 이런 요구를 매 릴리스마다 유지보수 비용으로 바꿉니다.
특정 테넌트의 메뉴 오타나 onboarding 수정이 새 바이너리와 스토어 심사(보통 24~48시간, 때로는 훨씬 더 오래)를 기다려서는 안 됩니다.
단 한 번의 글로벌 업데이트가 모든 브랜드를 한 번에 망가뜨릴 수 있습니다. 브랜드마다 포크를 만들면 팀 전체가 느려집니다. 테넌트별 릴리스 경로가 필요합니다.
일반적인 설정
각 비즈니스 고객은 자체 로고, 테마, onboarding 문구, 기능 구성을 갖추고 자체 채널로 업데이트를 받습니다.
각 레스토랑, 클리닉, 체육관, 지점은 새 바이너리 없이 로컬 메뉴, 에셋, 캠페인 화면을 라이브 업데이트로 받습니다.
호스트 앱이 워크스페이스나 미니 앱 목록을 보여주고, 런타임에 setChannel()로 기기를 해당 Capgo 채널로 전환합니다.
솔루션
네이티브 쉘은 공유된 채로 유지됩니다. 각 테넌트의 웹 레이어는 자체 채널을 통해 배포됩니다.
각 테넌트, 프랜차이즈, 워크스페이스마다 채널이 하나씩 할당됩니다. 한 테넌트에만 또는 전체에 배포하고, 다른 채널은 건드리지 않고 특정 채널만 롤백할 수 있습니다.
Channels 문서셀프 할당 기능을 사용하면 앱이 setChannel()을 호출하여 디바이스를 해당 테넌트의 채널에 할당합니다. Capgo는 업데이트 확인 시마다 여전히 채널을 검증합니다.
setChannel() 레퍼런스테넌트마다 서로 다른 Native Build 버전을 사용하는 경우가 많습니다. 채널별로 메이저 업데이트를 차단하거나 최소 Native Build 버전을 설정하여, 번들이 실행 가능한 셸에만 전달되도록 하세요.
버전 타겟팅 문서각 Android flavor 또는 iOS scheme를 클라우드에서 빌드하고 스토어에 upload하세요. 매주 변경되는 웹 레이어에는 Live Update를 사용하면 됩니다.
Build 옵션작동 방식
단일 Capacitor 코드베이스로 테넌트당 하나의 채널을 운영하세요. 명령어와 code은 Capgo CLI 및 updater 문서를 참조하세요.
각 테넌트는 고유한 bundle과 히스토리를 가진 채널을 할당받습니다. 앱에서 직접 채널을 지정할 수 있도록 설정하여 디바이스를 해당 채널로 이동시키세요.
npx @capgo/cli@latest channel add acme com.example.app --self-assign
npx @capgo/cli@latest channel add globex com.example.app --self-assign Channels 문서 테넌트의 테마와 설정을 적용하여 웹 레이어를 빌드한 후, 해당 테넌트의 채널에만 upload하세요. 다른 테넌트들은 기존 bundle을 그대로 유지합니다.
npx @capgo/cli@latest bundle upload --channel acme
npx @capgo/cli@latest bundle upload --channel globex Rollback 문서 로그인 후 테넌트의 채널로 setChannel()을 호출하세요. 선택된 채널은 디바이스에 저장되며, 다음 업데이트 체크 시 적용됩니다.
import { CapacitorUpdater } from '@capgo/capacitor-updater'
await CapacitorUpdater.setChannel({
channel: tenant.channel,
triggerAutoUpdate: true,
}) setChannel() 레퍼런스 테넌트별 스토어 등록 정보, 아이콘 또는 권한이 필요한 경우, Capgo Build를 사용하여 해당 flavor나 scheme을 빌드하세요. 별도의 Mac은 필요하지 않습니다.
npx @capgo/cli@latest build request com.acme.app --platform android --android-flavor acme
npx @capgo/cli@latest build request com.acme.app --platform ios --ios-scheme Acme Build 옵션 Capacitor로 빌드된 앱
지역 스포츠, 엔터테인먼트, 통신 브랜드는 하나의 앱 기반을 재사용하면서 각 브랜드나 국가에 맞게 일정, 캠페인, 지원, 시장별 콘텐츠를 변경할 수 있습니다.
일정과 로컬 콘텐츠를 시장별로 제어해야 하는 지역 스포츠 미디어 앱.
시장 및 편성 시간대에 따라 콘텐츠 노출이 달라지는 엔터테인먼트 가이드.
공유 계정 패턴이 여전히 현지 제품 및 지원 콘텐츠를 필요로 하는 통신사 앱.
Webincode 개발자
“Device ID를 특정 그룹에 추가하고 변경 사항을 해당 그룹에만 푸시할 수 있다는 점이 정말 큰 도움이 됩니다.”
Private CTO
“설정은 하루도 안 걸렸습니다. 채널 기반 롤아웃 덕분에 프로덕션 사용자에게 배포되기 전에 제 기기에서 먼저 테스트할 수 있었습니다.”
drivolino GmbH 리드 개발자
“Capgo Capacitor Updater 플러그인 덕분에 업데이트 배포 방식이 완전히 바뀌었습니다. 며칠씩 걸리던 작업이 이제는 단 몇 분 만에 끝납니다.”
자주 묻는 질문
하나의 Capgo 설정으로 여러 브랜드를 운영하기 전, 팀들이 자주 묻는 질문입니다.
각 브랜드가 스토어에 고유한 App ID를 가진 경우에만 필요합니다. 하나의 스토어 앱으로 여러 테넌트를 서비스한다면, 테넌트별로 채널을 나누어 하나의 Capgo 앱으로 운영할 수 있습니다. 반면, 브랜드별로 별도의 스토어 앱을 출시한다면 각각 별개의 Capgo 앱이 되며, 각 앱은 고유한 채널을 가집니다.
Channels 문서네, 가능합니다. 테넌트의 채널이 셀프 할당(self-assignment)을 허용한다면, 앱에서 setChannel()을 호출하면 됩니다. 현재 플러그인 버전에서는 선택 사항이 디바이스에 저장되며, 다음 업데이트 체크 시 적용됩니다.
setChannel() 레퍼런스버전 타겟팅을 사용하세요. 특정 채널에서 메이저 업데이트를 차단하거나, 번들에 최소 Native Build 버전을 설정하여 구버전 셸(shell)에서도 실행 가능한 번들만 유지되도록 할 수 있습니다.
버전 타겟팅 문서네. 각 채널은 자체 bundle 히스토리를 유지합니다. 테넌트의 채널을 이전 bundle로 롤백해도 다른 채널은 그대로 유지됩니다.
Rollback 문서앱 이름, 아이콘, 권한, native plugin, native code은 바이너리에 포함됩니다. Capgo Build로 각 flavor 또는 scheme을 빌드해 App Store Connect와 Google Play에 업로드할 수 있습니다.
Capgo 빌드 문서14일 체험 기간에 테넌트 채널 두 개를 만들고, 각 채널에 bundle을 업로드한 뒤 setChannel()로 테스트 기기를 두 채널 간에 전환해 보세요.
하나의 Capacitor codebase로 테넌트당 하나의 Capgo live update 채널을 운영하세요.
Martin이 직접 제공하는 지원
14일간 무제한 무료 체험. 카드 등록 불필요 14일 이내 환불 보장. 언제든 취소 가능.
엔터프라이즈 요구 사항이 있으신가요? 팀에 문의하기