메인 콘텐츠로 건너뛰기
플러그인으로 돌아가기
@capacitor-plus/core
튜토리얼
@capacitor-plus/core

Capacitor+ Core

Capacitor+는 Capacitor의 자동화된, 항상 동기화된 fork입니다. 커뮤니티 PR를 병합하고 빠른 릴리스를 제공합니다.

안내서

Tutorial on Capacitor+ Core

Using Capacitor+ (@capacitor-plus) Packages

Capacitor+ is an automated, always-synced fork of Capacitor Capacitor Capgo공식 패키지 대체용으로 공식 Capacitor 패키지를 제공하며, 하나의 주요 이점이 있습니다: 공식 패키지 대체용으로 공식 __CAPGO_KEEP_0__ 패키지를 제공하며, 하나의 주요 이점이 있습니다:.

Why Capacitor+ Exists

The Ionic team maintains Capacitor with their own priorities and release schedule. This means community contributions - bug fixes, improvements, and features - can wait months or even years to be merged. Some never make it at all.

Capacitor+ solves this problem by:

  1. 포크에서 PR 병합 - 상당한 가치가 있는 PR가 업스트림 큐에 묻혀 있는 것을 적극적으로 병합합니다.
  2. 연속적인 싱크 - Every change from upstream Capacitor is automatically pulled, tested, and verified
  3. 빠른 릴리즈 - When changes pass CI, they're automatically published to npm under the @capacitor-plus 범위
  4. 커뮤니티-최우선 당신의 기여가 중요하고 우선순위를 받습니다.
  5. 보안 검토 모든 변경 사항은 AI를 통해 보안 취약점, 변경 사항, 안정성 위험을 분석합니다.

사용 가능한 패키지

패키지 설명
@capacitor-plus/core 코어 런타임 라이브러리
@capacitor-plus/cli 명령 줄 인터페이스
@capacitor-plus/android 안드로이드 런타임
@capacitor-plus/ios iOS 런타임

설치

새 프로젝트

새 프로젝트를 위해, 공식 패키지 대신 Capacitor+ 패키지를 사용하세요:

npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android  # for Android
npm install @capacitor-plus/ios      # for iOS

그런 다음 프로젝트를 초기화하세요:

npx cap init
npx cap add android
npx cap add ios

공식 Capacitor에서 마이그레이션:

공식 Capacitor에서 Capacitor+로 프로젝트를 마이그레이션하려면:

# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios

# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android  # if using Android
npm install @capacitor-plus/ios      # if using iOS

Capacitor+는 API와 동일한 drop-in 대체품이므로 code 변경이 필요하지 않습니다. import 문은 동일합니다:

// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';

이것은 어떻게 작동하는지

┌─────────────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  ionic-team/        │     │  CI/CD           │     │  Claude Code     │     │  npm publish    │
│  capacitor          │────▶│  Pipeline        │────▶│  Security Review │────▶│  @capacitor-plus│
│  (upstream)         │     │  (daily sync)    │     │  (AI analysis)   │     │  packages       │
└─────────────────────┘     └──────────────────┘     └──────────────────┘     └─────────────────┘
  1. 일일 동기화: GitHub 액션은 최신 변경 사항을 가져옵니다 ionic-team/capacitor
  2. PR 생성: 변경 사항은 pull request로 제안됩니다 plus branch
  3. CI 검증: 전체 테스트 스위트가 실행됩니다 (lint, 단위 테스트, iOS 빌드, Android 빌드)
  4. 클로드 Code 리뷰: 인공지능 기반의 포괄적인 보안 분석을 위해
    • 보안 취약점 (인젝션, XSS 등)
    • 파괴적인 API 변경
    • 크래시 위험과 안정성 문제
    • 데이터 무결성과 개인 정보 보호 문제
    • 악성 code 패턴
  5. 자동 병합: CI가 통과하고 클로드가 승인 (문제가 감지되지 않음)
  6. 자동 배포: 새로운 버전이 npm 하위에 보안 리뷰로 배포 @capacitor-plus/*

보안 리뷰

업스트림 동기화는 다음과 같은 항목을 분석합니다:

확인 설명
보안 명령어 주입, XSS, 경로 탐색, 고정 비밀, 등
변경 사항 제거/이름 변경된 API, 서명 변경, 구성 형식 변경
안정성 Null 참조, 예외 처리, 경쟁 조건, 메모리 누수
데이터 안전 데이터 손실 시나리오, 개인 정보 침해, 안전하지 않은 저장
Code完整성 가려진 code, 수상한 네트워크 호출, 백도어

문제가 발견되면 PR은 수동 검토를 위해 표시되고 자동 병합되지 않습니다.

PR이 병합되기를 원하십니까?

Capacitor 공식 저장소에 PR이 걸리게 되면 어떻게 해야 하나요? Capacitor+로 어떻게 넣을 수 있나요?

  1. 이슈를 열어보세요 in the Capacitor+ 저장소 업스트림 PR에 대한 링크를 포함하세요
  2. 직접 __CAPGO_KEEP_1__+로 PR을 제출하세요 branch plus 팀은 이를 검토하고 CI를 실행하고 통과하면 병합합니다.
  3. __CAPGO_KEEP_1__+

이러한 방식으로, 당신과 다른 사람들은 업스트림 릴리스 주기 동안 기다리지 않고 즉시 당신의 작업의 이점을 누릴 수 있습니다.

장점

  • 현재 PR을 받으세요: 업스트림에서 기다리는 커뮤니티.fixes 및 기능이 병합됩니다
  • 최신 버전 유지: 업스트림.fixes를 CI가 통과한 즉시 받으세요
  • 안전성 우선: 모든 변경 사항은 취약점 및 안정성 위험을 검토합니다
  • 인증된 릴리스: CI 테스트 및 AI 보안 검토 모두 통과한 변경 사항만 릴리스됩니다
  • Drop-in Replacement: API과 Capacitor은 동일한 것만 패키지 범위가 다릅니다
  • 당신의 목소리가 중요합니다.: 자신의 PR를 제출하거나 특정 업스트림 PR를 병합 요청하세요.

예시: Capacitor+를 플러그인과 함께 사용하는 방법

Capacitor 공식 플러그인은 Capacitor+와 완벽하게 호환됩니다.

import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';

// Everything works exactly the same
const platform = Capacitor.getPlatform();

const photo = await Camera.getPhoto({
  resultType: CameraResultType.Uri
});

const position = await Geolocation.getCurrentPosition();

Capgo 플러그인도 Capacitor+와 완벽하게 호환됩니다.

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

// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });

그의 그것! 이제 Capacitor에 커뮤니티가 개선한 버전이 더 빠르게 업데이트되며, 앱은 공식 릴리스 주기 기다리지 않고 버그 수정 및 기능을 즐길 수 있습니다.

계속 Using Capacitor+ (@capacitor-plus) Packages

이미 __CAPGO_KEEP_0__+ (@__CAPGO_KEEP_1__-plus) Packages를 사용 중이라면 Using Capacitor+ (@capacitor-plus) Packages __CAPGO_KEEP_0__+를 사용하여 __CAPGO_KEEP_0__+의 구현 세부 사항을 연결하세요. Capacitor+ Capacitor+ Capgo Plugin Directory for the product workflow in Capgo Plugin Directory, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트 아이오닉 엔터프라이즈 플러그인 대체 Capgo 플러그인