Commencer
Nouveau Project Installation
Section titled βNouveau Project Installationβ-
Installer core packages
Terminal window npm install @capacitor-plus/core @capacitor-plus/cli -
Ajouter platform packages
Terminal window npm install @capacitor-plus/android # for Androidnpm install @capacitor-plus/ios # for iOS -
Initialiser Capacitor
FenΓͺtre de terminal npx cap initFenΓͺtre de terminal pnpm cap initFenΓͺtre de terminal yarn cap initFenΓͺtre de terminal bunx cap init -
Ajouter platforms
FenΓͺtre de terminal npx cap add androidFenΓͺtre de terminal pnpm cap add androidFenΓͺtre de terminal yarn cap add androidFenΓͺtre de terminal bunx cap add androidFenΓͺtre de terminal npx cap add iosFenΓͺtre de terminal pnpm cap add iosFenΓͺtre de terminal yarn cap add iosFenΓͺtre de terminal bunx cap add ios
Migrating from Official Capacitor
Section titled βMigrating from Official CapacitorβIf you have an existing Capacitor project, migrating to Capacitor+ is simple:
-
Retirer official packages
Terminal window npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios -
Installer Capacitor+ packages
Terminal window npm install @capacitor-plus/core @capacitor-plus/clinpm install @capacitor-plus/android # if using Androidnpm install @capacitor-plus/ios # if using iOS -
Synchroniser your project
FenΓͺtre de terminal npx cap syncFenΓͺtre de terminal pnpm cap syncFenΓͺtre de terminal yarn cap syncFenΓͺtre de terminal bunx cap sync
Utilisation
Section titled βUtilisationβSince Capacitor+ is API-compatible, your existing code works without changes:
import { Capacitor } from '@capacitor/core';import { registerPlugin } from '@capacitor/core';
// Check platformconst platform = Capacitor.getPlatform();console.log('Running on:', platform);
// Check if nativeif (Capacitor.isNativePlatform()) { console.log('Running on native platform');}
// Register a custom pluginconst MyPlugin = registerPlugin('MyPlugin');With Official Capacitor Plugins
Section titled βWith Official Capacitor PluginsβAll official Capacitor plugins work seamlessly:
import { Camera, CameraResultType } from '@capacitor/camera';import { Geolocation } from '@capacitor/geolocation';import { Storage } from '@capacitor/preferences';
// Cameraconst photo = await Camera.getPhoto({ quality: 90, resultType: CameraResultType.Uri});
// Geolocationconst position = await Geolocation.getCurrentPosition();
// Storageawait Storage.set({ key: 'name', value: 'John' });With Capgo Plugins
Section titled βWith Capgo PluginsβCapgo plugins work perfectly with Capacitor+:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';import { CapacitorFlash } from '@capgo/capacitor-flash';
// Live updatesawait CapacitorUpdater.notifyAppReady();
// Screen orientationawait ScreenOrientation.lock({ orientation: 'portrait' });
// Flashlightawait CapacitorFlash.toggle();How the Synchroniser Works
Section titled βHow the Synchroniser Worksββββββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ ionic-team/ β β CI/CD β β Claude Code β β npm publish ββ capacitor ββββββΆβ Pipeline ββββββΆβ Security Review ββββββΆβ @capacitor-plusββ (upstream) β β (daily sync) β β (AI analysis) β β packages ββββββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ- Daily Sync: GitHub Actions fetch latest changes from
ionic-team/capacitor - PR Creation: Changes are proposed as pull requests to the
plusbranch - CI Validation: Full Test suite runs (lint, unit tests, iOS Construction, Android Construction)
- SΓ©curitΓ© Review: AI-powered analysis checks for vulnerabilities and breaking changes
- Auto-Merge: Only if CI passes AND SΓ©curitΓ© review approves
- Auto-Publish: New version published to npm under
@capacitor-plus/*
SΓ©curitΓ© Review Details
Section titled βSΓ©curitΓ© Review DetailsβEvery upstream Synchroniser is analyzed for:
| VΓ©rifier | What It Catches |
|---|---|
| SΓ©curitΓ© | Commande injection, XSS, path traversal, hardcoded secrets |
| Breaking Changes | Removed/renamed APIs, changed signatures, config changes |
| Stability | Null dereferences, unhandled exceptions, race conditions, memory leaks |
| Data Safety | Data loss scenarios, privacy violations, insecure storage |
| Code Integrity | Obfuscated code, suspicious network calls, backdoors |
Submitting Your PR
Section titled βSubmitting Your PRβHave a PR stuck in the official Capacitor repo? Get it merged in Capacitor+:
-
Open an Problème in the Capacitor+ repo linking to your upstream PR
-
Or submit directly as a PR to the
plusbranch -
The team will review, run CI, and merge if it passes
This way you and others can benefit from your work immediately without waiting for the upstream LibΓ©ration cycle.
Is this Production-ready?
Section titled βIs this Production-ready?βYes. Capacitor+ is used in Production apps. Every LibΓ©ration passes the same Test suite as official Capacitor, plus additional SΓ©curitΓ© analysis.
Will my official plugins still work?
Section titled βWill my official plugins still work?βYes. All @capacitor/* plugins work with Capacitor+ out of the box.
What if upstream releases a breaking change?
Section titled βWhat if upstream releases a breaking change?βThe AI SΓ©curitΓ© review flags breaking changes for manual review. Youβll see the changes documented before theyβre merged.
How do I Signaler issues?
Section titled βHow do I Signaler issues?βFile issues on the Capacitor+ GitHub repo. For issues that also affect official Capacitor, weβll Aide coordinate upstream.
Can I contribute?
Section titled βCan I contribute?βAbsolutely! PRs are welcome. You can Soumettre fixes directly or request that specific upstream PRs be merged.