좋은 질문입니다.
이 내용은 법적 조언이 아닙니다. Capacitor 앱을 안전하게 배포하는 팀들이 실제로 사용하고 있는 실무적인 방법을 공유하는 것입니다.
가장 중요한 차이점은 다음과 같습니다:
- Native Build 제출 새로운 native 동작이나 주요 기능 구현에는 여전히 필요합니다.
- Live Update 기존 앱 범위 내에서 JavaScript/web 수정 및 조정을 위한 용도입니다.
iOS와 Android 모두 이 모델을 사용할 수 있지만, 이를 반드시 정책을 준수하는 워크플로우로취급해야 하며, 우회 수단으로 생각해서는 안 됩니다.
Apple과 Google 허용 범위, 간단 정리
Apple과 Google은 유사한 경계선을 가지고 있다고 이해하면 쉽습니다:
- 앱을 다시 제출하지 않고도 임베디드 웹 레이어(HTML/CSS/JS)가 해석하는 code를 배포할 수 있습니다.
- 앱의 목적을 변경하는 주요 기능 추가에는 이 채널을 사용해서는 안 됩니다.
- JS만으로 핵심 보안이나 배포 제어 기능을 변경해서는 안 됩니다.
WebKit/JavaScript 업데이트에 관한 Apple의 공식 가이드가 이 모델의 핵심입니다. Google은 일반적으로 웹 기반 업데이트에 대해 덜 제한적이지만, 원칙은 동일합니다. 즉, native 변경 사항은 native release를 통해 반영해야 합니다.
Capgo의 활용 용도
Capgo 사용 용도:
- 웹 버그 핫픽스,
- 안전한 UI 문구 / 스타일 / 플로우 수정,
- 기존 페이지의 경미한 로직 수정,
- 내부 QA를 위한 빠른 실험.
Capgo 사용 불가 사례:
- 권한 추가 또는 새로운 Native 기능 추가,
- 심사가 필요한 새로운 핵심 기능 배포,
- 서명, 암호화 또는 패키지 식별 동작 변경.
권장 릴리스 전략
두 가지 트랙으로 생각하세요:
트랙 1: 네이티브 트랙 (스토어 심사)
다음의 경우에는 기존 Capacitor 릴리스 프로세스를 사용하세요:
- 새로운 플러그인 업데이트,
- 앱 셸 또는 매니페스트 변경,
- 권한(permissions) 업데이트,
- 플랫폼별 기능 변경 사항.
이 경우 다음이 필요합니다:
bun run build
bunx cap sync
# then App Store / Google Play submission flow
트랙 2: JS 트랙 (Capgo)
안전하고 작은 런타임 변경 사항의 경우:
bun run build
bunx @capgo/cli deploy --channel staging
bunx @capgo/cli deploy --channel production
이를 통해 바이너리 자체의 안정성을 유지하면서, 새로운 바이너리 업로드 없이도 빠르게 반복 개발할 수 있습니다.
“아차, 이건 네이티브 릴리스가 필요했네” 상황을 피하는 방법
Capgo 배포 전, 다음 체크리스트를 실행하세요:
- 새로운 native dependency나 권한이 필요한가요?
- 앱의 주요 기능 설명이 변경되나요?
- 인증이나 보안 경계가 변경되나요?
- 영향이 없는 JavaScript 수정 사항으로 설명 가능한가요?
(1)-(3) 중 하나라도 해당하면 native release를 제출하세요. (4)만 해당한다면 Capgo를 통해 전송하세요.
컴플라이언스 팀이 고려해야 할 사항
- 중요한 변경 사항을 위해 앱 리뷰 리소스를 아낄 수 있습니다.
- 롤백 제어권과 빠른 패치 능력을 유지할 수 있습니다.
- 전체 배포 전 채널에서 업데이트를 테스트하여 운영 리스크를 줄입니다.
이는 대규모 Capacitor 프로그램을 운영하는 방식과 같습니다. JS 수정은 빠르게 업데이트하고, 실제 바이너리 변경 시에만 native 리뷰를 받습니다.
더 깊이 파고들고 싶다면, 채널 기반의 엄격한 환경 전략을 병행하여 QA가 운영 실수를 겪지 않도록 하세요. 이것이 staging, beta, production을 깔끔하게 유지하는 Capgo 방식입니다.
스토어 리뷰 반복 없이 Capacitor JS 앱을 업데이트하는 방법에서 계속 읽기
사용 중이라면 반복되는 스토어 심사 없이 Capacitor JS 앱을 업데이트하는 방법 스토어 승인 및 배포를 계획하려면, 다음 항목과 연결하세요 @capgo/capacitor-in-app-review @capgo/capacitor-in-app-review의 구현 세부 사항에 대해서는, @capgo/capacitor-in-app-review 사용하기 @capgo/capacitor-in-app-review 사용하기에서 네이티브 기능은, @capgo/capacitor-native-market @capgo/capacitor-native-market의 구현 세부 사항은, @capgo/capacitor-native-market 사용하기 @capgo/capacitor-native-market 사용하기의 네이티브 기능은, Capacitor OTA 업데이트: App Store 승인 가이드 Capacitor OTA 업데이트: App Store 승인 가이드의 실무 맥락은.