콘텐츠로 건너뛰기

시작하기

  1. 코어 패키지 설치

    Terminal window
    npm install @capacitor-plus/core @capacitor-plus/cli
  2. 플랫폼 패키지 추가

    Terminal window
    npm install @capacitor-plus/android # for Android
    npm install @capacitor-plus/ios # for iOS
  3. Capacitor 초기화

    Terminal window
    npx cap init
  4. 플랫폼 추가

    Terminal window
    npx cap add android
    Terminal window
    npx cap add ios

기존 Capacitor 프로젝트가 있는 경우 Capacitor+로 마이그레이션하는 것은 간단합니다:

  1. 공식 패키지 제거

    Terminal window
    npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
  2. Capacitor+ 패키지 설치

    Terminal window
    npm install @capacitor-plus/core @capacitor-plus/cli
    npm install @capacitor-plus/android # if using Android
    npm install @capacitor-plus/ios # if using iOS
  3. 프로젝트 동기화

    Terminal window
    npx cap sync

Capacitor+는 API 호환이 가능하므로 기존 코드가 변경 없이 작동합니다:

import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
// Check platform
const platform = Capacitor.getPlatform();
console.log('Running on:', platform);
// Check if native
if (Capacitor.isNativePlatform()) {
console.log('Running on native platform');
}
// Register a custom plugin
const MyPlugin = registerPlugin('MyPlugin');

모든 공식 Capacitor 플러그인이 원활하게 작동합니다:

import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
import { Storage } from '@capacitor/preferences';
// Camera
const photo = await Camera.getPhoto({
quality: 90,
resultType: CameraResultType.Uri
});
// Geolocation
const position = await Geolocation.getCurrentPosition();
// Storage
await Storage.set({ key: 'name', value: 'John' });

Capgo 플러그인은 Capacitor+와 완벽하게 작동합니다:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
import { CapacitorFlash } from '@capgo/capacitor-flash';
// Live updates
await CapacitorUpdater.notifyAppReady();
// Screen orientation
await ScreenOrientation.lock({ orientation: 'portrait' });
// Flashlight
await CapacitorFlash.toggle();
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
  1. 일일 동기화: GitHub Actions가 ionic-team/capacitor에서 최신 변경 사항을 가져옵니다
  2. PR 생성: 변경 사항이 plus 브랜치에 대한 풀 리퀘스트로 제안됩니다
  3. CI 검증: 전체 테스트 스위트 실행(lint, 단위 테스트, iOS 빌드, Android 빌드)
  4. 보안 검토: AI 기반 분석이 취약점 및 중단 변경 사항을 확인합니다
  5. 자동 병합: CI가 통과하고 보안 검토가 승인되는 경우에만
  6. 자동 게시: 새 버전이 npm에 @capacitor-plus/*로 게시됩니다

모든 업스트림 동기화는 다음을 분석합니다:

확인감지하는 내용
보안명령 주입, XSS, 경로 순회, 하드코딩된 비밀
중단 변경 사항제거/이름이 변경된 API, 변경된 서명, 구성 변경
안정성Null 역참조, 처리되지 않은 예외, 경쟁 조건, 메모리 누수
데이터 안전성데이터 손실 시나리오, 개인정보 보호 위반, 안전하지 않은 저장소
코드 무결성난독화된 코드, 의심스러운 네트워크 호출, 백도어

공식 Capacitor 저장소에 PR이 막혀 있습니까? Capacitor+에서 병합하세요:

  1. 이슈 열기 Capacitor+ 저장소에서 업스트림 PR에 링크

  2. 또는 직접 제출 plus 브랜치에 PR로

  3. 팀이 검토하고 CI를 실행하며 통과하면 병합합니다

이렇게 하면 업스트림 릴리스 주기를 기다리지 않고 귀하와 다른 사람들이 귀하의 작업에서 즉시 혜택을 받을 수 있습니다.

예. Capacitor+는 프로덕션 앱에서 사용됩니다. 모든 릴리스는 공식 Capacitor와 동일한 테스트 스위트와 추가 보안 분석을 통과합니다.

공식 플러그인이 여전히 작동합니까?

Section titled “공식 플러그인이 여전히 작동합니까?”

예. 모든 @capacitor/* 플러그인은 Capacitor+와 함께 즉시 작동합니다.

업스트림이 중단 변경 사항을 릴리스하면 어떻게 됩니까?

Section titled “업스트림이 중단 변경 사항을 릴리스하면 어떻게 됩니까?”

AI 보안 검토는 수동 검토를 위해 중단 변경 사항에 플래그를 지정합니다. 변경 사항이 병합되기 전에 문서화된 변경 사항을 볼 수 있습니다.

Capacitor+ GitHub 저장소에 문제를 제출하세요. 공식 Capacitor에도 영향을 미치는 문제의 경우 업스트림 조정을 도와드리겠습니다.

물론입니다! PR을 환영합니다. 수정 사항을 직접 제출하거나 특정 업스트림 PR이 병합되도록 요청할 수 있습니다.