가이드
Capacitor+ 코어에 대한 튜토리얼
Capacitor+ (@capacitor-plus) 패키지를 사용하는 방법
Capacitor+는 자동화된, 항상 동기화된 분기본체로 커뮤니티 PR를 병합하고 빠른 릴리즈를 제공합니다. Capacitor 관리하는 사람들에 의해 Capgo. 공식 Capacitor 패키지에 대한 대체품으로 제공되며, 하나의 주요 이점이 있습니다: 커뮤니티 PR 및 수정 사항이 더 빠르게 병합됩니다.
Why Capacitor+ Exists
Capacitor는 Ionic 팀이 자신의 우선순위와 릴리스 일정에 따라 유지 관리합니다. 따라서 커뮤니티 기여 - 버그 수정, 개선, 기능 - 몇 달 또는 thậm chí 몇 년 동안 병합되거나 병합되지 않을 수 있습니다. 일부는 결코 이루어지지 않을 수도 있습니다.
Capacitor+는 이러한 문제를 해결하기 위해:
- Forks에서 PR 병합 - 상류 수류탄에 갇힌 가치 있는 PR가 적극적으로 병합됩니다
- 연속 동기화 - 상류 Capacitor에서 모든 변경 사항이 자동으로 pulling, 테스트 및 확인됩니다
- 빠른 릴리스 - CI에서 변경 사항이 통과하면 자동으로 npm에 게시됩니다.
@capacitor-plusscope - Community-First - 여러분의 기여가 중요하고 우선순위가 됩니다.
- Security Reviewed - 모든 변경 사항은 AI를 통해 보안 취약점, 깨진 변경 사항 및 안정성 위험을 분석합니다.
Available Packages
| Package | 설명 |
|---|---|
@capacitor-plus/core |
Core runtime library |
@capacitor-plus/cli |
Command-line interface |
@capacitor-plus/android |
Android runtime |
@capacitor-plus/ios |
iOS 런타임 |
설치
새 프로젝트
새 프로젝트를 시작하려면 공식 Capacitor 대신 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에서 __CAPGO_KEEP_1__+로 프로젝트를 이전하는 방법
공식 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와 동일한 API를 제공하므로 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 │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- 일일 동기화: GitHub 액션은 최신 변경 사항을 GitHub에서 가져옵니다.
ionic-team/capacitor - PR 생성: __CAPGO_KEEP_0__이 제안된 변경 사항은 GitHub에 pull request로 제출됩니다.
plusbranch - CI Validation: 전체 테스트 스위트가 실행됩니다 (lint, 단위 테스트, iOS 빌드, Android 빌드)
- Claude Code 리뷰: AI가 제공하는 보안 분석을 통해 다음 항목을 검사합니다.
- 보안 취약점 (인젝션, XSS 등)
- 파괴적인 API 변경
- 스태빌리티 문제와 충돌 위험
- 데이터 무결성과 개인 정보 보호 문제
- 악성 code 패턴
- 자동 병합: CI가 통과되고 Claude가 승인 (문제가 발견되지 않음) 할 때만
- 자동 배포: 새로운 버전이 npm 에서
@capacitor-plus/*
보안 검토
업스트림 동기화마다 다음을 분석합니다:
| 체크 | 설명 |
|---|---|
| 보안 | 명령어 주입, XSS, 경로 탐색, 고정 비밀, etc. |
| 파괴적인 변경 | 제거/이름이 변경된 API, 서명이 변경, 구성 형식 변경 |
| 안정성 | Null dereferences, unhandled exceptions, race conditions, memory leaks |
| 데이터 안전 | 데이터 손실 시나리오, 개인 정보 침해, 안전하지 않은 저장 |
| Code의完整성 | 가려진 code, 수상한 네트워크 호출, 백도어 |
문제가 발견되면 PR은 수동 검토를 위해 표시되고 자동 병합되지 않습니다.
PR을 병합하고 싶으세요?
공식 Capacitor 리포지토리에 PR이 걸리게 되면 어떻게 해야 하나요? Capacitor+로 보내는 방법을 알려드리겠습니다.
- 이슈를 열어주세요 in the Capacitor+ 리포지토리 업스트림 PR에 링크합니다
- PR을 직접 제출하거나 으로
plusbranch - 팀은 이를 검토하고 CI를 실행하여 통과하면 병합합니다.
이러한 방식으로, 당신과 다른 사람들은 업스트림 릴리스 주기 동안 기다리지 않고 즉시 이익을 얻을 수 있습니다.
장점
- 지금 PR을 고정하세요: 업스트림에서 기다리는 커뮤니티.fixes 및 기능이 병합됩니다.
- 현재 유지: 업스트림.fixes를 즉시 CI 통과 시에 받습니다.
- 보안 우선: 모든 변경 사항은 취약점 및 안정성 위험을 검토합니다.
- 인증된 릴리스: CI 테스트 및 AI 보안 검토 모두 통과한 변경 사항만 릴리스됩니다
- 대체 가능성: 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) 패키지를 계속 사용하세요
만약 __CAPGO_KEEP_0__을 사용중이라면 Capacitor+ (@capacitor-plus) 패키지 __CAPGO_KEEP_0__+를 사용하여 네이티브 플러그인 작업을 계획하고 연결하세요. Capacitor+ Capacitor+의 구현 세부 정보에 대해 참조하세요. Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리의 제품 워크플로에 대해 참조하세요. Capacitor 플러그인들에 의해 Capgo Capacitor 플러그인들에 의해 Capgo의 구현 세부 정보에 대해 참조하세요. 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트의 구현 세부 정보에 대해 참조하세요. 아이오닉 엔터프라이즈 플러그인 대체 아이오닉 엔터프라이즈 플러그인 대체의 제품 워크플로에 대해 참조하세요.