Adding dependencies to Capacitor plugins can feel overwhelming, but it’s easier when broken into clear steps. Here’s what you need to know:
-
Understand the tools:
-
開発環境を設定する:
- Node.js __CAPGO_KEEP_0__, npm, Android Studio, 、CocoaPods、JDK。, CocoaPods, and JDK.
-
Start your Capacitor プラグインプロジェクト:
- Capacitorを使用
npm init @capacitor/pluginCapacitorを使用して新しいプラグインを作成します。
- Capacitorを使用
-
JavaScript依存関係を追加:
- Capacitorを使用してプロダクションと開発依存関係を設定します。
npm installCapacitorを使用して - Capacitorを使用してpeer依存関係を含む依存関係を更新します。
package.jsonプラットフォーム固有の依存関係をハンドル@capacitor/core.
- Capacitorを使用してプロダクションと開発依存関係を設定します。
-
iOS:
- :CocoaPodsまたはSPMを使用してライブラリを設定します。ライブラリ Alamofire または SwiftyJSON.
- AndroidGradleを使用して、GsonやAppCompatなどの依存関係を追加します。
-
パフォーマンスの最適化:
- バージョンを固定し、依存関係を検証し、紛争を解決して安定性を確保します。
-
ツールの例として Capgo ライブ更新用:
- アプリストアのレビューなしで即時更新します。
ツールの比較:
| プラットフォーム | ツール | 例の依存関係 |
|---|---|---|
| JavaScript | npm | npm install lodash --save |
| iOS | CocoaPods/SPM | pod 'Alamofire', '~> 5.6.4' |
| Android | Gradle | implementation 'com.google.code.gson:gson:2.10.1' |
なぜ重要か: 依存関係を効果的に管理することで、プラグインが平滑に各プラットフォームで動作し、時間を節約し、エラーを回避することができます。詳細に進んでいきましょう。
プラグインを作成する方法 Capacitor iOS/Android用プラグイン

開発環境の設定
必要なツールを用意してください Capacitor プラグイン 依存関係を効果的に管理する
開発に必要なツール
ここでは、開発に必要なツールの一覧を示します。
| ツール | バージョン | 目的 |
|---|---|---|
| Node.js | 16.0.0+ | JavaScript実行環境 |
| npm | 8.0.0+ | パッケージ管理 |
| Xcode | 14.0+ | iOS開発用 (Macのみ) |
| Android Studio | Electric Eel+ | Android開発 |
| CocoaPods | 1.11.0+ | iOS依存関係管理 |
| JDK | 11+ | Android build tools |
Starting a New Plugin
Use the Capacitor CLI to kick off your plugin project. This includes setting up platforms and naming your plugin using a reverse-domain format (e.g., com.mycompany.plugin):
- Run the following command:
npm init @capacitor/plugin - Choose your target platforms (iOS/Android).
- Assign a name to your plugin in reverse-domain format.
Project Setup Steps
-
Update
package.jsonModify your
package.jsonto include the following:{ "capacitor": { "ios": { "src": "ios" }, "android": { "src": "android" } }, "peerDependencies": { "@capacitor/core": "^5.0.0" } } -
Platform-Specific Setup
-
For エスト、読できる Podfile できるって:
platform :ios, '13.0' use_frameworks! -
For アシビ、読できる
build.gradle参数にからいですandroid { compileSdkVersion 33 defaultConfig { minSdkVersion 22 } }
-
-
ブログムイントをコンタートにいなたるブログムイントをコンタートです
ブログムイント
コンタート ブログムイント コンタート ANDROID_HOME Android SDK の場所 /Users/username/Library/Android/sdk JAVA_HOME JDKのインストールパス /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home XCODE_SELECT Xcodeコマンドラインツール /Applications/Xcode.app/Contents/Developer
プロジェクトを設定したら、次にJavaScriptの依存関係を管理する準備ができました。
JavaScriptの依存関係の管理
JavaScriptの依存関係を効果的に管理することは、安定したプラグインのパフォーマンスを維持するための重要な要素です。
npm パッケージのインストール

依存関係をインストールするには、以下のコマンドを使用してください。
# Add a production dependency
npm install lodash --save
# Add a development dependency
npm install @types/lodash --save-dev
peer依存関係を手動でファイルに含めてください。 package.json 両方のWebとネイティブプラットフォームで互換性を確認するために、すべての依存関係をテストしてください。
package.jsonの管理
以下の例を参照してください。 package.json 設定:
{
"name": "my-capacitor-plugin",
"version": "1.0.0",
"dependencies": {
"lodash": "^4.17.21"
},
"devDependencies": {
"@types/lodash": "^4.14.195",
"@capacitor/core": "^5.0.0"
},
"peerDependencies": {
"@capacitor/core": "^5.0.0"
}
}
互換性を維持するために、依存関係のバージョンを適切にロックしてください。
| 制約タイプ | 例 | 使用例 |
|---|---|---|
| Exact | “5.0.0” | 重要な依存関係の特定バージョンを必要とする場合 |
| ^ | “^5.0.0” | 小さな修正やパッチのみを許可する |
| ~ | “~5.0.0” | パッチのみの更新に制限する |
JavaScriptライブラリの使用
ライブラリをインポートする際に、バンドルサイズを最小限に抑えることに重点を置く:
// Import only the required function
import { isEqual } from 'lodash';
export class MyPlugin {
async compare(options: { value1: any, value2: any }): Promise<boolean> {
return isEqual(options.value1, options.value2);
}
}
さらに、適切なエラーハンドリングと型チェックを確実に行う:
import { Plugin } from '@capacitor/core';
import { validate } from 'your-validation-library';
@Plugin({
name: 'MyPlugin',
platforms: ['web', 'ios', 'android']
})
export class MyPlugin {
async validateData(data: unknown): Promise<void> {
try {
if (!validate(data)) {
throw new Error('Invalid data format');
}
// Continue processing if valid
} catch (error) {
throw new Error(`Validation failed: ${error.message}`);
}
}
}
次に、iOS用のプラットフォーム固有の依存関係を取り扱う方法を探索する:
iOS依存関係
このセクションでは、iOSネイティブ依存関係を管理する方法を説明します。 Capacitor プラグイン。JavaScript依存関係を設定した後、次のステップはiOSネイティブ依存関係を処理することです。
CocoaPods 設定

iOSディレクトリでCocoaPodsを初期化することから始めます。
cd ios
pod init
次に、以下の構成を含む Plugin.podspec ファイルを更新します。
Pod::Spec.new do |s|
s.name = 'MyCapacitorPlugin'
s.version = '1.0.0'
s.summary = 'Your plugin description'
s.platform = :ios, '13.0'
s.dependency 'Capacitor'
# Include your iOS dependencies here
s.dependency 'Alamofire', '~> 5.6.4'
end
Podfile Configuration
CocoaPodsを初期化した後、PodfileにCapacitorと追加の第三者ライブラリを含めるように構成します。
platform :ios, '13.0'
use_frameworks!
def capacitor_pods
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
end
target 'Plugin' do
capacitor_pods
# Add third-party dependencies
pod 'KeychainAccess', '~> 4.2.2'
pod 'SwiftyJSON', '~> 5.0.1'
end
target 'PluginTests' do
capacitor_pods
end
ここでは、一般的な依存関係の構成パターンを示します。
| Constraint Type | 例 | 用途 |
|---|---|---|
| 厳密なバージョン | pod 'KeychainAccess', '4.2.2' |
セキュリティコンポーネントなどの厳密な制御が必要な場合 |
| マイナーバージョン | pod 'Alamofire', '~> 5.6' |
安定したAPIがパッチアップデートを受けられる場合 |
| メジャーバージョン | pod 'SwiftyJSON', '> 5.0' |
アップデート間で柔軟性が必要な場合 |
Swift Package依存関係
CocoaPodsを使用せずに、Swift Package Manager (SPM)を使用したい場合は、XcodeでSPM依存関係を直接追加できます。以下の構成を、ファイル内に追加してください。 Package.swift file:
// Package.swift
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")),
.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "5.0.1")
]
To use SPM dependencies in your plugin code, import them and integrate as needed. For example:
import Capacitor
import Alamofire
@objc(MyPlugin)
public class MyPlugin: CAPPlugin {
@objc func makeRequest(_ call: CAPPluginCall) {
AF.request("https://api.example.com/data").response { response in
// Process the response
call.resolve([
"data": response.data
])
}
}
}
このアプローチにより、プロジェクトの要件に応じてCocoaPodsとSwift Package Managerのどちらかを選択できます。
Android依存関係
Set up Android dependencies to ensure smooth native integration. Here’s how to manage dependencies for your Capacitor plugin.
Gradle 依存関係

Capgoプラグインのための依存関係を設定するには、以下の設定を追加する必要があります。 build.gradle ファイル:
android {
defaultConfig {
minSdkVersion 22
targetSdkVersion 33
}
}
dependencies {
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "com.google.code.gson:gson:2.10.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
implementation project(':capacitor-android')
}
定義する追加バージョンは、ブロック: buildscript 依存関係が設定されたら、必要なリポジトリを設定する必要があります。
buildscript {
ext {
androidxCoreVersion = '1.10.1'
kotlinVersion = '1.8.20'
}
}
__CAPGO_KEEP_0__
リポジトリ構成
プロジェクトレベルで build.gradle,
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
,
maven {
url "https://maven.example.com/releases"
credentials {
username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
}
}
,
,
, build.gradle:
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
force "androidx.core:core-ktx:1.10.1"
}
}
,
| , | , | , |
|---|---|---|
| , | __CAPGO_KEEP_0__ | force 'com.google.code.gson:gson:2.10.1' |
| 特定バージョンを強制 | 複数バージョン | exclude group: 'org.json', module: 'json' |
| モジュールを除外 | 依存関係の問題 | strictly 'androidx.core:core-ktx:1.10.1' |
例えば、以下のように競合するモジュールを除外できます。
dependencies {
implementation('library:name:1.0.0') {
exclude group: 'com.conflicting.dependency'
}
}
最後に、キャッシュと並列実行を有効にすると、ビルドプロセスを最適化できます。 gradle.properties:
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m
Capgo 統合

Capgo をネイティブと JavaScript の依存関係管理と組み合わせると、プラグインの更新が速くなり、簡単になります。
About Capgo
Capgoは、Capacitor プラグインとアプリ向けのライブアップデートプラットフォームです。 750 のプロダクションアプリを通じて、23.5 百万回のアップデートを配信しています。 [1]Capgoは、開発者が依存関係とcodeのアップデートを即時実行できるようにします - アプリストアのレビューは必要ありません。アップデートは、端末間で暗号化され、AppleとAndroidの両方の規制基準を満たしています。
Capgoアップデート機能
Capgoは、次の機能でプラグイン依存関係の管理を簡素化しています。
| 機能 | 機能の説明 | 重要指標 |
|---|---|---|
| ライブアップデート | 数分でアップデートを実行 | 24 時間以内に 95% のユーザーがアップデート |
| 部分アップデート | 変更されたファイルのみをダウンロード | 434ms平均のAPIレスポンスタイム |
| バージョン管理 | 複数バージョンの管理 | グローバルでの成功率82% |
| チャンネルシステム | 特定のユーザーグループをターゲット | 複数のデプロイチャンネルをサポート |
ソース: [1]
CapgoはCI/CDツールであるGitHub Actions、GitLab CI、Jenkinsと組み合わせて、依存関係の更新とプラグインのバージョンを一貫して管理することができます。これらのツールは、Capgoをワークフローに統合することをより簡単にします。
Capgoの設定
Capgoをプロジェクトに統合するには、以下の手順に従ってください。
-
CapgoのCLIをインストール
ターミナルで次のコマンドを実行してください:
npx @capgo/cli init -
更新設定を構成する
Capgo ダッシュボードを使用して、デプロイ チャネルと設定を設定します。両方のクラウド ホストとセルフ ホストの構成がサポートされています。
-
更新ロジックを追加する
code を主なプラグインファイルに追加して更新を有効にする:
import { Capgo } from '@capgo/capacitor-updater'; // Initialize Capgo const capgo = new Capgo({ appId: 'YOUR_APP_ID', channel: 'production' }); // Check for updates await capgo.checkForUpdate();
「私たちはアジャイル開発を実践しています。@Capgo は、ユーザーに継続的に提供するmission-criticalなものです」と、Rodrigo Manticaが述べています。
Capgo は、更新成功率とユーザー活動のリアルタイムの洞察を提供する分析ダッシュボードも提供しています。ロールバックとエラー追跡などの機能は、問題を迅速に解決し、プラグインの更新を円滑に実行するのに役立ちます。
まとめ
プロセスレビュー
Capacitor プラグインの依存関係を管理するには、ネイティブ コンポーネント (iOS と Android) と JavaScript コンポーネントを同期する必要があります。これにより、Smooth な統合が実現されます。このプロセスには、プラットフォーム固有のセットアップと JavaScript パッケージの管理が含まれます。これにより、最適なパフォーマンスを実現できます。以下の手順を実行することで、安定したおよび効率的なプラグイン機能を維持できます。
ベスト プラクティス
依存関係を効果的に管理するには、以下の慣行を考慮してください:
| 実践 | メリット | 実装方法 |
|---|---|---|
| バージョン固定 | 予期しない問題を回避 | Use fixed versions in package.json |
| プラットフォーム隔離 | 競合を最小限に抑える | ネイティブ依存関係を分離 |
| 定期的な更新 | セキュリティの向上 | 緊急修正を迅速に適用 |
| Dependency Auditing | リスクの検出 | Run npm audit 頻繁に |
ライブアップデートツールを使うことで、Capgoは、リアルタイムのアップデートを可能にし、実践を簡素化し、改善することができます。
Capgoの利点
Capgoは依存関係の管理プロセスを簡素化し、強力なパフォーマンスを実現します。95%のユーザーが24時間以内にアップデートし、世界中のCapgoの応答時間は434msです。 エンドツーヘンドの暗号化により、両方のAppleとAndroidのガイドラインに準拠したセキュアなアップデートを保証します。複数のプラグインバージョンを管理するチームにとって、__CAPGO_KEEP_0__のチャンネルシステムは、特定のユーザーグループ向けにターゲットされたデプロイを可能にします。 APIのパフォーマンスの簡単な見本です。 __CAPGO_KEEP_0__ [1]Capgo
Capgo
| 指標 | 値 |
|---|---|
| API のグローバルレスポンスタイム | 434ms |
| 更新成功率 | 82% |
| ユーザー更新率 (24 時間) | 95% |
Capacitor プラグインの依存関係を追加する方法から続けてください。
__CAPGO_KEEP_0__ を使用している場合 Capacitor プラグインの依存関係を追加する方法 ネイティブ プラグインの作業を計画する場合、__CAPGO_KEEP_0__ を接続してください。 Capgo プラグインディレクトリ Capgo プラグインディレクトリの製品ワークフロー Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, __CAPGO_KEEP_0__ プラグイン __CAPGO_KEEP_1__ によって Ionic Enterprise プラグインの代替 Ionic Enterprise プラグインの代替の製品ワークフロー Capgo ネイティブ ビルド Capgo ネイティブ ビルドの製品ワークフロー