소개
Capacitor가 이미 있습니다. 브라우저에서 작동하고 매니페스트가 있으며 오프라인 지원을 위해 서비스 워커를 사용하는 경우가 많습니다. 앱 스토어 배포, 네이티브 디바이스 API 또는 보다 나은 온보딩 파이프라인이 필요하다면 Capacitor 앱으로 마이그레이션하는 것이 프론트 엔드 다시 작성하는 것보다 일반적으로 더 빠릅니다.
code의 가장 큰 장점은 대부분의 경우에 이미 있는 웹 code를 거의 전부 유지할 수 있다는 것입니다. 일반적으로 다음만 필요합니다:
- 생산 웹 자산을 빌드하세요.
- Capacitor를 올바른 Capacitor로 초기화하세요.
webDir, - iOS 및 Android 프로젝트를 추가하세요.
- 네이티브 플러그인을 필요한 곳에서만 연결하세요.
PWA가 깨끗한 경로와 컴포넌트 논리 구조를 가지고 있다면 이 작업은 몇 시간 만에 끝낼 수 있습니다.
필수 조건
예상 시간: 2-5 hours, depending on platform-specific features.
- Node.js 18세 이상 Bun
- code (React, Vue, Angular, Svelte, etc.)
- Xcode (iOS, macOS 전용)
- Android Studio (Android 전용)
- iOS 앱 배포를 위해 Apple Developer 계정이 필요합니다.
- Android 배포를 위해 Google Play Developer 계정이 필요합니다.
1단계: PWA를 원래 형태로 확인하세요.
애플리케이션을 실행하기 전에 bunx cap init생산 환경에서 웹 앱이 준비되어 있는지 확인하세요:
- 생산 빌드 스크립트가 있는지 확인하세요 (예를 들어,
bun run build). - 웹 출력 폴더가 결정적인지 확인하세요 (일반적으로
dist,build또는out). - 브라우저 전용으로만 작동하는 절대적인 리다이렉트를 제거하세요. 브라우저 전용 컨텍스트를 가정하는 절대적인 리다이렉트가 있습니다.
- 서비스 워커의 동작이 모바일 웹 뷰와 호환되는지 확인하세요:
- 오프라인 지원을 유지하세요. 오프라인 지원이 사용자에게 도움이 된다면.
- 브라우저 전용 API를 사용하지 마세요. 이 API는 웹 뷰 내부에서 사용할 수 없습니다.
- 생산 환경에서 PWA 설치提示와 브라우저 전용 UX가 여전히 의미가 있는지 확인하세요. 일반적으로 Capacitor 앱에서 앱 설치提示는 필요하지 않습니다.
Step 2: 웹 전용 동작을 적응하세요
앱 UI를 유지하세요. 브라우저 전용 논리를 게이트하세요.
설치 및 푸시 프로모션 주변에 간단한 플랫폼 체크를 사용하세요:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
이것은 네이티브 컨테이너 내에서 브라우저 전용 논리 실행을 피합니다.
3단계: Capacitor을 PWA 폴더에서 초기화하세요.
기존 PWA 루트에서:
bun add @capacitor/core
bun add -D @capacitor/cli
Capacitor init을 실행하세요. 앱 이름, 번들 ID, 웹 출력 디렉토리와 함께:
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
만약 빌드 폴더가 build (Create React App) 또는 out (Next.js 정적 내보내기) dist.
Add a basic Capacitor config:
import type { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
appId: 'com.example.my-pwa-app',
appName: 'MyPWAApp',
webDir: 'dist',
server: {
iosScheme: 'https',
},
}
export default config
__CAPGO_KEEP_0__ 기본 설정을 추가하세요:
4단계: 네이티브 플랫폼 추가:
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
코어 네이티브 패키지를 설치하고 프로젝트 폴더를 생성하세요: Capacitor이 생성한 ios/ 그리고 android/ 폴더. 동기화는 웹 앱을 빌드하여 두 플랫폼에 웹 자산을 복사합니다.
5단계: 웹 앱을 빌드하고 동기화
PWA를 빌드하고 웹 자산 동기화:
bun run build
bunx cap sync
현재 네이티브 프로젝트를 열어주세요:
bunx cap open ios
bunx cap open android
Xcode 또는 Android Studio에서 장치나 에뮬레이터를 연결하고 실행해 주세요.
6단계: 네이티브 업그레이드 후
이제 웹 전용 기능을 네이티브 API로 대체해야 하는 곳입니다:
- 푸시 알림 ->
@capacitor/push-notifications - 보안 키/값 저장소 ->
@capacitor/preferences - 카메라/미디어 ->
@capacitor/camera - 생체 인증 ->
@capacitor-community/native-biometric또는 사용자가 선택한 플러그인
새로운 네이티브 플러그인에 대해:
- 플러그인 패키지를 설치하세요
- 플러그인에 대한 특정 설정을 구성하세요
- Run:
bunx cap sync
그다음 다시 빌드하고 실행하세요.
7단계: 앱 스토어 일치성 검사
제출하기 전에:
- 양쪽 플랫폼에서 깊이 있는 링크 및 라우팅 (
/및 깊이 있는 경로) 테스트하세요. - 상태 바, 안전 영역 및 방향이 올바른지 확인하세요.
- 사용되지 않는 웹 전용 메타데이터를 제거하세요. (예: 설치提示).
- 앱 전송 보안 및 개인 정보 보호 설정을 정책에 맞게 유지하세요.
- 각 플랫폼에 대한 앱 아이콘/스플래시 자산을 추가하세요.
앱이 OTA 업데이트를 사용하는 경우 릴리스 PIPELINE을 네이티브로 안전한 업데이트 전략과 pair하고 고려하세요 Capgo 제어 된 롤아웃 및 롤백을 위해 pair하세요.
최종 체크리스트
- 웹 앱이 깨끗하게 빌드되며 (
bun run build) - Capacitor이 올바른
webDir bunx cap add ios그리고bunx cap add android완료- 네이티브 앱은 실제 장치에서 실행됩니다
- 브라우저 전용 code 경로는 네이티브 동작을 위해 게이트드됩니다
- 업데이트 채널 및 앱 스토어 자산은 구성되었습니다.
이미 PWA를 빌드할 때 대부분의 어려운 작업을 이미 수행했습니다. Capacitor로 wrapping하면 다음과 같은 이점이 있습니다:
- 스토어 배포
- 네이티브 API에 대한 접근
- code 재작성 없이 빠른 반복 가능성
- 웹 및 모바일 팀이 하나의 배포 경로를 사용할 수 있습니다.
이 흐름에서 시작하여, 분석 및 사용자 피드백에 따라 네이티브로 반복적으로 개선하세요.
Transform Your PWA를 Capacitor로 Native App로 변환하세요.
__CAPGO_KEEP_0__를 사용 중이라면 Transform Your PWA를 Capacitor로 Native App로 변환하세요. 계획 및 기업 운영을 위한 이주와 연결하세요. Capgo Enterprise Capgo 제품 워크플로우에서 Capgo Enterprise를 위해 Ionic Enterprise 플러그인 대체 Capacitor 대체 Capgo Alternatives for the product workflow in Capgo Alternatives, Capgo Consulting for the product workflow in Capgo Consulting, and Capgo Premium Support for the product workflow in Capgo Premium Support.