Añadir dependencias a Capacitor plugins puede resultar abrumador, pero es más fácil si se divide en pasos claros. Esto es lo que necesitas saber:
-
Comprender las herramientas:
-
Configura tu entorno de desarrollo:
- Instala herramientas como Node.js, npm, Xcode, Android Studio, CocoaPods y JDK.
-
Inicia tu proyecto de plugin de Capacitor:
- Usa
npm init @capacitor/pluginpara crear un nuevo plugin.
- Usa
-
Añade dependencias de JavaScript:
- Usa
npm installpara dependencias de producción y desarrollo. - Actualizar
package.jsonpara incluir peer dependencies como@capacitor/core.
- Usa
-
Gestionar dependencias específicas de la plataforma:
- iOS: Configura CocoaPods o SPM con librerías como Alamofire o SwiftyJSON.
- Android: Usa Gradle para añadir dependencias como Gson o AppCompat.
-
Optimiza el rendimiento:
- Fija versiones, audita dependencias y resuelve conflictos para garantizar la estabilidad.
-
Usa herramientas como Capgo para actualizaciones en vivo:
- Publica actualizaciones al instante sin revisiones de la tienda de apps.
Comparación rápida de herramientas:
| Plataforma | Herramienta | Dependencia de ejemplo |
|---|---|---|
| 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' |
Por qué es importanteGestionar bien las dependencias garantiza que tu plugin funcione sin problemas en todas las plataformas, ahorra tiempo y evita errores. Veamos los pasos en detalle.
Cómo crear un Capacitor plugin para iOS/Android

Configuración del entorno de desarrollo
Prepara tu entorno con las herramientas necesarias para gestionar plugin Capacitor dependencias de forma efectiva.
Herramientas de desarrollo necesarias
Esta es la lista de herramientas que necesitarás:
| Herramienta | Versión | Propósito |
|---|---|---|
| Node.js | 16.0.0+ | Entorno de ejecución de JavaScript |
| npm | 8.0.0+ | Gestión de paquetes |
| Xcode | 14.0+ | Desarrollo iOS (solo Mac) |
| Android Studio | Electric Eel+ | Desarrollo en Android |
| CocoaPods | 1.11.0+ | Gestión de dependencias en iOS |
| JDK | 11+ | Herramientas de build de Android |
Crear un nuevo plugin
Usa el Capacitor CLI para iniciar tu proyecto de plugin. Esto incluye configurar las plataformas y nombrar tu plugin con el formato de dominio inverso (p. ej., com.mycompany.plugin):
- Ejecuta el siguiente comando:
npm init @capacitor/plugin - Elige tus plataformas objetivo (iOS/Android).
- Asigna un nombre a tu plugin en formato de dominio inverso.
Pasos de configuración del proyecto
-
Actualizar
package.jsonModifica tu
package.jsonpara incluir lo siguiente:{ "capacitor": { "ios": { "src": "ios" }, "android": { "src": "android" } }, "peerDependencies": { "@capacitor/core": "^5.0.0" } } -
Configuración específica por plataforma
-
Para iOS, asegúrate de que tu Podfile incluya:
platform :ios, '13.0' use_frameworks! -
Para Android, verifica tu
build.gradlecontiene:android { compileSdkVersion 33 defaultConfig { minSdkVersion 22 } }
-
-
Configurar variables de entorno
Configura las siguientes variables de entorno para tus herramientas de desarrollo:
Variable Propósito Valor de ejemplo ANDROID_HOME Ubicación de SDK de Android /Users/username/Library/Android/sdk JAVA_HOME Ruta de instalación de JDK /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home XCODE_SELECT Herramientas de línea de comandos de Xcode /Applications/Xcode.app/Contents/Developer
Una vez que tu proyecto esté configurado, estarás listo para pasar a la gestión de dependencias de JavaScript.
Dependencias de JavaScript
Gestionar bien las dependencias de JavaScript es clave para mantener un rendimiento estable de los plugins.
npm Instalación de paquetes

Para instalar dependencias, usa los siguientes comandos:
# Add a production dependency
npm install lodash --save
# Add a development dependency
npm install @types/lodash --save-dev
Asegúrate de incluir manualmente las peer dependencies en tu package.json archivo. Prueba todas las dependencias para confirmar la compatibilidad en ambas plataformas, web y nativa.
Gestión de package.json
Aquí tienes un ejemplo package.json de configuración:
{
"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"
}
}
Para mantener la consistencia, bloquea las versiones de las dependencias de forma adecuada:
| Tipo de limitación | Ejemplo | Caso de uso |
|---|---|---|
| Exacta | “5.0.0” | Para dependencias críticas que requieren una versión específica |
| Caret | “^5.0.0” | Permite actualizaciones menores y parches |
| Tilde | “~5.0.0” | Limita las actualizaciones a parches |
Uso de librerías JavaScript
Al importar librerías, centra tu atención en reducir el tamaño del bundle:
// 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);
}
}
Additionally, ensure proper error handling and type checking:
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}`);
}
}
}
A continuación, explora cómo gestionar dependencias específicas de la plataforma para iOS.
Dependencias de iOS
Esta sección explica cómo gestionar dependencias nativas de iOS en plugins de Capacitor. Una vez que hayas configurado tus dependencias de JavaScript, el siguiente paso es gestionar las dependencias nativas de iOS.
CocoaPods Configuración

Comienza inicializando CocoaPods en tu directorio de iOS:
cd ios
pod init
Luego, actualiza tu Plugin.podspec archivo con las siguientes configuraciones:
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
Configuración del Podfile
Después de inicializar CocoaPods, configura el Podfile para incluir Capacitor y cualquier otra biblioteca de terceros:
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
Aquí tienes algunos patrones comunes de configuración de dependencias:
| Tipo de limitación | Ejemplo | Caso de uso |
|---|---|---|
| Versión exacta | pod 'KeychainAccess', '4.2.2' |
Cuando se necesita un control preciso, como en componentes de seguridad |
| Versión minor | pod 'Alamofire', '~> 5.6' |
Para APIs estables que puedan recibir actualizaciones de parche |
| Versión major | pod 'SwiftyJSON', '> 5.0' |
Cuando la flexibilidad entre actualizaciones es aceptable |
Dependencias de Swift Package
Si prefieres no usar CocoaPods, Swift Package Manager (SPM) es una buena alternativa. Añade dependencias de SPM directamente en Xcode con la siguiente configuración en tu Package.swift archivo:
// 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")
]
Para usar dependencias de SPM en tu plugin code, impórtalas e intégralas según sea necesario. Por ejemplo:
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
])
}
}
}
Este enfoque te permite elegir entre CocoaPods y Swift Package Manager según los requisitos de tu proyecto.
Dependencias de Android
Configura las dependencias de Android para asegurar una integración nativa fluida. Así es como gestionas las dependencias para tu plugin Capacitor.
Gradle Dependencias

Añade las siguientes configuraciones a tu build.gradle archivo:
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')
}
Define versiones adicionales en el buildscript bloque:
buildscript {
ext {
androidxCoreVersion = '1.10.1'
kotlinVersion = '1.8.20'
}
}
Una vez configuradas las dependencias, asegúrate de configurar los repositorios necesarios.
Configuración de repositorios
En el nivel de proyecto, build.gradle, incluye los repositorios Maven requeridos:
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
Si usas repositorios Maven privados o personalizados, añade las credenciales así:
maven {
url "https://maven.example.com/releases"
credentials {
username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
}
}
Con los repositorios listos, resuelve cualquier conflicto de dependencias que surja.
Solución de problemas de compatibilidad
Para gestionar conflictos de dependencias, aplica resoluciones de versión en tu build.gradle:
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
force "androidx.core:core-ktx:1.10.1"
}
}
Aquí tienes estrategias para resolver problemas comunes de dependencias:
| Tipo de problema | Estrategia | Ejemplo |
|---|---|---|
| Conflicto de versiones | Forzar una versión específica | force 'com.google.code.gson:gson:2.10.1' |
| Múltiples versiones | Excluir un módulo | exclude group: 'org.json', module: 'json' |
| Problemas transitivos | Usar versiones estrictas | strictly 'androidx.core:core-ktx:1.10.1' |
Por ejemplo, puedes excluir módulos en conflicto así:
dependencies {
implementation('library:name:1.0.0') {
exclude group: 'com.conflicting.dependency'
}
}
Finalmente, optimiza tu proceso de build habilitando el caché y la ejecución paralela en gradle.properties:
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m
Capgo Integración

Usar Capgo junto con la gestión de dependencias nativas y de JavaScript hace que actualizar tu plugin sea más rápido y fácil.
Sobre Capgo
Capgo es una plataforma de live update diseñada para plugins y apps de Capacitor. Con más de 23,5 millones de actualizaciones entregadas en 750 apps en producción [1], Capgo permite a los desarrolladores enviar actualizaciones de dependencias y code al instante, sin necesidad de revisión de la app store. Las actualizaciones están protegidas con cifrado de extremo a extremo y cumplen con los estándares de cumplimiento de Apple y Android.
Funciones de actualización de Capgo
Capgo simplifica la gestión de dependencias de plugins con estas características:
| Característica | What It Does | Métrica clave |
|---|---|---|
| Live Updates | Publica actualizaciones en minutos | 95% de usuarios actualizan en 24 horas |
| Actualizaciones parciales | Descarga solo archivos modificados | tiempo de respuesta promedio de API de 434ms |
| Control de versiones | Gestiona múltiples versiones | tasa de éxito global del 82% |
| Sistema de canales | Segmentar grupos de usuarios específicos | Soporta varios canales de despliegue |
Fuente: [1]
Capgo funciona a la perfección con herramientas de CI/CD como GitHub Actions, GitLab CI y Jenkins, automatizando las actualizaciones de dependencias y garantizando versiones de plugins consistentes. Estas herramientas facilitan la integración de Capgo en tu workflow.
Configuración de Capgo
Sigue estos pasos para integrar Capgo en tu proyecto:
-
Instala el CLI de Capgo
Ejecuta el siguiente comando en tu terminal:
npx @capgo/cli init -
Configura las preferencias de actualización
Usa el dashboard de Capgo para configurar tus canales de despliegue y preferencias. Es compatible con configuraciones en la nube o self-hosted.
-
Añade la lógica de actualización
Añade este code a tu archivo principal del plugin para habilitar las actualizaciones:
import { Capgo } from '@capgo/capacitor-updater'; // Initialize Capgo const capgo = new Capgo({ appId: 'YOUR_APP_ID', channel: 'production' }); // Check for updates await capgo.checkForUpdate();
“Practicamos desarrollo ágil y @Capgo es fundamental para hacer entregas continuas a nuestros usuarios.” - Rodrigo Mantica
Capgo también ofrece un dashboard de analytics para obtener insights en tiempo real sobre la tasa de éxito de las actualizaciones y la actividad de los usuarios. Funciones como el rollback con un clic y el seguimiento de errores ayudan a resolver problemas rápido, manteniendo tus actualizaciones de plugins sin interrupciones.
Conclusión
Revisión del proceso
Gestionar las dependencias de los plugins de Capacitor requiere alinear los componentes nativos (iOS y Android) con sus equivalentes en JavaScript para asegurar una integración fluida. Este proceso incluye configuraciones específicas de cada plataforma y la gestión de paquetes JavaScript para obtener el mejor rendimiento. Seguir estos pasos te ayudará a mantener la funcionalidad de los plugins estable y eficiente.
Buenas prácticas
Para gestionar las dependencias con eficacia, considera estas prácticas:
| Práctica | Beneficio | Cómo implementarlo |
|---|---|---|
| Fijar versiones | Evita problemas inesperados | Usa versiones fijas en package.json |
| Aislamiento de plataforma | Minimiza conflictos | Separa las dependencias nativas |
| Actualizaciones regulares | Mejora la seguridad | Aplica parches críticos rápido |
| Auditoría de dependencias | Detecta riesgos | Ejecuta npm audit frecuentemente |
Usar herramientas de live update como Capgo puede simplificar y mejorar estas prácticas al permitir actualizaciones en tiempo real.
Beneficios de Capgo
Capgo simplifica la gestión de dependencias a la vez que ofrece un gran rendimiento. Alcanza un impresionante 95% de tasa de actualización de usuarios en 24 horas y mantiene un tiempo de respuesta global de API de 434ms [1]. Con cifrado de extremo a extremo, garantiza actualizaciones seguras que cumplen con las directrices de Apple y Android. Para equipos que gestionan múltiples versiones de plugins, el sistema de canales de Capgo permite despliegues dirigidos a grupos de usuarios específicos.
Aquí tienes un vistazo rápido al rendimiento de Capgo:
| Métrica | Valor |
|---|---|
| Tiempo de respuesta global de API | 434ms |
| Tasa de éxito de actualizaciones | 82% |
| Tasa de actualización de usuarios (24 horas) | 95% |
Continúa desde Cómo agregar dependencias en plugins de Capacitor
Si estás usando Cómo añadir dependencias en plugins de Capacitor para planificar el trabajo con plugins nativos, conéctalo con Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para el detalle de implementación en los Plugins de Capacitor por Capgo, Añadir o actualizar plugins para el detalle de implementación en Agregar o actualizar plugins, Alternativas a plugins de Ionic Enterprise para el flujo de trabajo en Alternativas a plugins de Ionic Enterprise, y Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds.