Zum Hauptinhalt springen

Wie man Abhängigkeiten in Capacitor Plugins hinzufügt

Lernen Sie, die Abhängigkeitsverwaltung in Capacitor-Plugins über Plattformen mit praktischen Schritten und besten Praktiken zu optimieren.

Martin Donadieu

Martin Donadieu

Content Marketer

Wie man Abhängigkeiten in Capacitor Plugins hinzufügt

Die Hinzufügung von Abhängigkeiten zu Capacitor -Plugins kann sich überwältigend anfühlen, aber es ist einfacher, wenn man es in klare Schritte aufteilt. Hier ist, was Sie wissen müssen:

  1. Die Werkzeuge verstehen:

    • JavaScript: Verwenden npm Abhängigkeiten zu verwalten.
    • iOS: Verwenden Sie CocoaPods oder Swift Package Manager (SPM).
    • Android: Verwenden Sie Gradle zur Verwaltung von Abhängigkeiten.
  2. Konfigurieren Sie Ihre Entwicklungsumgebung:

  3. Starten Sie Ihr Capacitor-Plugin-Projekt:

    • Verwenden npm init @capacitor/plugin um ein neues Plugin zu erstellen.
  4. Hinzufügen von JavaScript-Abhängigkeiten:

    • Verwenden npm install für Produktions- und Entwicklungszwecke.
    • Aktualisieren package.json To Peer-Abhängigkeiten wie @capacitor/core.
  5. Plattform-spezifische Abhängigkeiten verwalten:

    • iOS: Konfigurieren Sie CocoaPods oder SPM mit Bibliotheken wie Alamofire oder SwiftyJSON.
    • Android: Verwenden Sie Gradle, um Abhängigkeiten wie Gson oder AppCompat hinzuzufügen.
  6. Leistungsanpassung:

    • Versionsnummern festlegen, Abhängigkeiten überprüfen und Konflikte lösen, um Stabilität sicherzustellen.
  7. Verwenden Sie Werkzeuge wie Capgo für Live-Updates:

    • Push-Updates sofort ohne App-Store-Überprüfungen.

Schnelle Vergleich der Werkzeuge:

Plattform Werkzeug Beispielhafte Abhängigkeit
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'

Weshalb es wichtig ist: Die effektive Verwaltung von Abhängigkeiten sichert Ihren Plugin eine reibungslose Funktion auf verschiedenen Plattformen, spart Zeit und vermeidet Fehler. Lassen Sie uns tiefer in die Schritte eintauchen.

Erstellung eines Capacitor Plugins für iOS/Android

Capacitor Framework Dokumentation Website

Einrichten Ihrer Entwicklungsumgebung

Vorbereiten Sie Ihre Einrichtung mit den notwendigen Werkzeugen, um Capacitor Plugin Abhängigkeiten effektiv zu verwalten.

Entwicklungs-Tools

Hier ist eine Liste der benötigten Werkzeuge:

Werkzeug Version Zweck
Node.js 16.0.0+ JavaScript-Umgebung zum Ausführen von Skripten
npm 8.0.0+ Paketverwaltung
Xcode 14.0+ iOS-Entwicklung (nur für Mac)
Android Studio Elektrischer Aal+ Android-Entwicklung
CocoaPods 1.11.0+ iOS-Abhängigkeitsmanagement
JDK 11+ Android-Build-Tools

Ein neues Plugin starten

Verwenden Sie die Capacitor CLI zum Starten Ihres Plugin-Projekts. Dies umfasst die Einrichtung von Plattformen und die Namensgebung Ihres Plugins im umgekehrten Domänenformat (z.B. com.mycompany.plugin):

  1. Führen Sie den folgenden Befehl aus:
    npm init @capacitor/plugin
  2. Wählen Sie Ihre Zielplattformen (iOS/Android).
  3. Zuweisen Sie einem Namen für Ihr Plugin im umgekehrten Domänenformat.

Projekt-Einrichtungsschritte

  1. aktualisieren package.json

    Ändern Sie Ihre package.json um die folgenden zu enthalten:

    {
      "capacitor": {
        "ios": {
          "src": "ios"
        },
        "android": {
          "src": "android"
        }
      },
      "peerDependencies": {
        "@capacitor/core": "^5.0.0"
      }
    }
  2. Plattform-spezifische Einrichtung

    • Für iOS, stellen Sie sicher, dass Ihr Podfile Folgendes enthält:

      platform :ios, '13.0'
      use_frameworks!
    • Für Android, überprüfen Sie, dass Ihr build.gradle enthält:

      android {
          compileSdkVersion 33
          defaultConfig {
              minSdkVersion 22
          }
      }
  3. Umgebungsvariablen einrichten

    Konfigurieren Sie die folgenden Umgebungsvariablen für Ihre Entwicklungstools:

    Variablenname Zweck Beispielwert
    ANDROID_HOME Android-SDK-Ort /Users/username/Library/Android/sdk
    JAVA_HOME Pfad zur JDK-Installation /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    XCODE_SELECT Pfad zu den Xcode-Befehlszeilenwerkzeugen /Anwendungen/Xcode.app/Contents/Developer

Sobald Ihr Projekt eingerichtet ist, seid Ihr bereit, auf das Verwalten von JavaScript-Abhängigkeiten zuzugehen.

JavaScript-Abhängigkeiten

Das effektive Verwalten von JavaScript-Abhängigkeiten ist entscheidend für die Gewährleistung einer stabilen Plugin-Leistung.

npm Paketinstallation

npm

Um Abhängigkeiten zu installieren, verwenden Sie die folgenden Befehle:

# Add a production dependency
npm install lodash --save

# Add a development dependency
npm install @types/lodash --save-dev

Stellen Sie sicher, dass Sie die Peer-Abhängigkeiten manuell in Ihrem package.json Datei einbeziehen. Testen Sie alle Abhängigkeiten, um die Kompatibilität auf beiden Web- und Native-Plattformen zu bestätigen.

Verwaltung von package.json

Ein Beispiel package.json Einstellungen:

{
  "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"
  }
}

Um Konsistenz zu gewährleisten, sollten die Versionsnummern von Abhängigkeiten entsprechend gesperrt werden:

Beschränkungstyp Beispiel Verwendungsfall
Exakt “5.0.0” Für kritische Abhängigkeiten, die eine bestimmte Version erfordern
Caret “^5.0.0” Ermöglicht Minor-Updates und Patches
Tilde “~5.0.0” Einschränkt Updates auf Patches nur

Verwendung von JavaScript-Bibliotheken

When Sie Bibliotheken importieren, konzentrieren Sie sich darauf, die Bundle-Größe zu reduzieren:

// 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);
  }
}

Zusätzlich stellen Sie sicher, dass Sie korrekte Fehlerbehandlung und Typüberprüfung durchführen:

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}`);
    }
  }
}

Als nächstes erfahren Sie, wie Sie Plattform-spezifische Abhängigkeiten für iOS handhaben.

iOS-Abhängigkeiten

Dieses Kapitel erklärt, wie Sie native iOS-Abhängigkeiten verwalten können in Capacitor-PluginsEinmal Sie Ihre JavaScript-Abhängigkeiten eingerichtet haben, ist der nächste Schritt die Handhabung von native iOS-Abhängigkeiten.

CocoaPods Einstellungen

CocoaPods

Beginnen Sie damit, CocoaPods in Ihrem iOS-Verzeichnis zu initialisieren:

cd ios
pod init

Dann aktualisieren Sie Ihre Plugin.podspec Datei mit den folgenden Konfigurationen:

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-Konfiguration

Nach der Initialisierung von CocoaPods, konfigurieren Sie die Podfile, um Capacitor und weitere dritte Bibliotheken einzuschließen:

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

Hier sind einige häufige Abhängigkeitskonfigurationsmuster:

Beschränkungstyp Beispiel Verwendungszweck
Genauer Version pod 'KeychainAccess', '4.2.2' Wenn eine genaue Kontrolle erforderlich ist, wie bei Sicherheitskomponenten
Minor Version pod 'Alamofire', '~> 5.6' Für stabile APIs, die möglicherweise Patch-Updates erhalten
Major Version pod 'SwiftyJSON', '> 5.0' When Flexibilität bei Updates akzeptabel ist

Swift Package Abhängigkeiten

Wenn Sie CocoaPods nicht verwenden möchten, ist der Swift Package Manager (SPM) eine gute Alternative. Fügen Sie SPM-Abhängigkeiten direkt in Xcode mit der folgenden Konfiguration in Ihrem Package.swift Datei:

// 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")
]

Um SPM-Abhängigkeiten in Ihrem Plugin code zu verwenden, importieren Sie sie und integrieren Sie sie wie erforderlich. Zum Beispiel:

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
            ])
        }
    }
}

Diese Vorgehensweise ermöglicht Ihnen, zwischen CocoaPods und Swift Package Manager basierend auf Ihren Projektanforderungen zu wählen.

Android-Abhängigkeiten

Stellen Sie die Android-Abhängigkeiten ein, um eine glatte native Integration sicherzustellen. Hier erfahren Sie, wie Sie die Abhängigkeiten für Ihr Capacitor-Plugin verwalten.

Gradle Abhängigkeiten

Gradle Build Tool Interface

Fügen Sie die folgenden Konfigurationen zu Ihrem build.gradle Datei:

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')
}

Definieren Sie zusätzliche Versionen in der buildscript Block:

buildscript {
    ext {
        androidxCoreVersion = '1.10.1'
        kotlinVersion = '1.8.20'
    }
}

Sobald die Abhängigkeiten konfiguriert sind, stellen Sie sicher, dass Sie die notwendigen Repositories einrichten.

Repository-Konfiguration

In Ihrem Projekt-Level build.gradle, fügen Sie die erforderlichen Maven-Repositories hinzu:

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}

Wenn Sie benutzerdefinierte oder private Maven-Repositories verwenden, fügen Sie wie folgt Anmeldeinformationen hinzu:

maven {
    url "https://maven.example.com/releases"
    credentials {
        username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
        password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
    }
}

Mithilfe der eingerichteten Repositories beheben Sie etwaige Abhängigkeitskonflikte, die auftreten können.

Abhängigkeitskompatibilitätsprobleme beheben

Um Abhängigkeitskonflikte zu handhaben, wenden Sie Versionsergänzungen in Ihrem build.gradle:

configurations.all {
    resolutionStrategy {
        force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
        force "androidx.core:core-ktx:1.10.1"
    }
}

Hier sind Strategien zur Auflösung von häufigen Abhängigkeitsproblemen:

Issue Typ Strategie Beispiel
Versionenkonflikt Eine bestimmte Version zwingen force 'com.google.code.gson:gson:2.10.1'
Mehrere Versionen Ein Modul ausschließen exclude group: 'org.json', module: 'json'
Transitive Probleme Strengere Versionen verwenden strictly 'androidx.core:core-ktx:1.10.1'

Zum Beispiel kannst du konkurrierende Module wie folgt ausschließen:

dependencies {
    implementation('library:name:1.0.0') {
        exclude group: 'com.conflicting.dependency'
    }
}

Schließlich optimiere dein Build-Prozess, indem du Caching und parallele Ausführung in gradle.properties:

org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m

Capgo Integration

Capgo Live Update Dashboard Interface

Mit Capgo zusammen mit der native und JavaScript-Abhängigkeitsverwaltung wird das Aktualisieren Ihres Plugins schneller und einfacher.

Über Capgo

Capgo ist eine Live-Update-Plattform, die für Capacitor-Plugins und -Apps entwickelt wurde. Mit über 23,5 Millionen Updates, die in 750 Produktionsanwendungen ausgeliefert wurden, ermöglicht Capgo es Entwicklern, Updates für Abhängigkeiten und Capacitor sofort durchzuführen - ohne die Überprüfung durch ein App-Store erforderlich. [1], Capgo allows developers to push updates for dependencies and code instantly - no app store review required. Updates are secured with end-to-end encryption and meet both Apple and Android compliance standards.

Capgo vereinfacht die Verwaltung von Plugin-Abhängigkeiten mit diesen Funktionen:

Capgo simplifies managing plugin dependencies with these features:

Was es tut Schlüsselmetrik Live-Updates
__CAPGO_KEEP_0__ ermöglicht Entwicklern, Updates für Abhängigkeiten und __CAPGO_KEEP_1__ sofort durchzuführen - ohne die Überprüfung durch ein App-Store erforderlich. Updates sind mit Ende-zu-Ende-Verschlüsselung geschützt und erfüllen sowohl die Apple- als auch die Android-Kompatibilitätsstandards. Push-Updates in Minuten 95% Benutzer-Update-Rate innerhalb von 24 Stunden
Teilweise Updates Nur geänderte Dateien herunterladen 434ms Durchschnittszeit für API
Versionskontrolle Mehrere Versionen verwalten 82% globale Erfolgsrate
Kanalsystem Zielgruppen spezifisch Mehrere Auslieferungskanäle unterstützt

Quelle: [1]

Capgo arbeitet reibungslos mit CI/CD-Tools wie GitHub Actions, GitLab CI und Jenkins zusammen, automatisiert Abhängigkeitsaktualisierungen und sichert konsistente Pluginversionen. Diese Tools erleichtern die Integration von Capgo in Ihren Workflow.

Einrichten von Capgo

Folgen Sie diesen Schritten, um Capgo in Ihr Projekt zu integrieren:

  1. Installieren Sie das Capgo-CLI

    Führen Sie den folgenden Befehl in Ihrem Terminal aus:

    npx @capgo/cli init
  2. Konfigurieren Sie die Aktualisierungspräferenzen

    Verwenden Sie das Capgo-Dashboard, um die Einrichtung von Bereitstellungskanälen und -präferenzen vorzunehmen. Beide Cloud-Hosted- und Self-Hosted-Konfigurationen sind unterstützt.

  3. Hinzufügen von Aktualisierungslogik

    Fügen Sie diesen code zu Ihrer Haupt-Plugin-Datei hinzu, um Aktualisierungen zu aktivieren:

    import { Capgo } from '@capgo/capacitor-updater';
    
    // Initialize Capgo
    const capgo = new Capgo({
      appId: 'YOUR_APP_ID',
      channel: 'production'
    });
    
    // Check for updates
    await capgo.checkForUpdate();

“Wir praktizieren agiles Entwicklung und Capgo ist mission-kritisch bei der ständigen Bereitstellung an unsere Benutzer!” - Rodrigo Mantica

Capgo bietet auch ein Analytics-Dashboard für Echtzeit-Insights in die Erfolgsraten von Aktualisierungen und Benutzeraktivitäten. Funktionen wie eine ein-klickige Rückschaltung und Fehlerverfolgung helfen schnell, Probleme zu lösen, und halten Ihre Plugin-Aktualisierungen reibungslos lauf.

Zusammenfassung

Prozessübersicht

Die Verwaltung von Abhängigkeiten für Capacitor-Plugins umfasst die Abstimmung der native Komponenten (iOS und Android) mit ihren JavaScript-Gegenstücken, um eine glatte Integration sicherzustellen. Dieser Prozess umfasst Plattform-spezifische Einstellungen und die Verwaltung von JavaScript-Paketen, um die beste Leistung zu erzielen. Durch die Ausführung der im Rahmen dieser Anleitung beschriebenen Schritte können Sie eine stabile und effiziente Plugin-Funktionalität gewährleisten.

Best Practices

Um Abhängigkeiten effektiv zu verwalten, sollten Sie folgende Praktiken berücksichtigen:

Praxis Vorteil Umsetzung
Version Pinning Verhindert unerwartete Probleme Verwenden Sie feste Versionen in package.json
Plattformisolation Minimiert Konflikte Separieren Sie native Abhängigkeiten
Regelmäßige Updates Sicherheit verbessert Kritische Patches anwenden, sobald sie verfügbar sind
Abhängigkeitsprüfung Risiken erkennt Ausführen npm audit häufig

Mit lebendigen Update-Tools wie Capgo können diese Praktiken weiter vereinfacht und verbessert werden, indem Echtzeit-Updates ermöglicht werden.

Capgo Vorteile

Capgo vereinfacht den Abhängigkeitsmanagementprozess und liefert eine starke Leistung. Es erreicht einen beeindruckenden 95% Benutzeraktualisierungsrate innerhalb von 24 Stunden und hält eine globale API Antwortzeit von 434ms [1]. Mit Ende-zu-Ende-Verschlüsselung stellt es sichere Updates sicher, die sowohl den Richtlinien von Apple als auch von Android entsprechen. Für Teams, die mehrere Plugin-Versionen verwalten, ermöglicht Capgo’s Kanal-System gezielte Bereitstellungen für bestimmte Benutzergruppen.

Hier ist ein schneller Überblick über die Capgo-Leistung:

Metrik Wert
Globale API Antwortzeit 434ms
Update-Erfolgsrate 82%
Benutzeraktualisierungsrate (24 Stunden) 95%

Fortsetzen Sie von Wie Sie Abhängigkeiten in Capacitor-Plugins hinzufügen

Wenn Sie __CAPGO_KEEP_0__ verwenden Wie man Abhängigkeiten in Capacitor-Plugins hinzufügt um native Plugin-Arbeit zu planen, verbinden Sie es mit Capgo-Plugin-Verzeichnis für den Produktworkflow in Capgo-Plugin-Verzeichnis Capacitor-Plugins von Capgo für die Implementierungsdetails in Capacitor-Plugins von Capgo, Hinzufügen oder Aktualisieren von Plugins für die Implementierungsdetails in Hinzufügen oder Aktualisieren von Plugins Ionic Enterprise Plugin Alternativen für den Produktworkflow in Ionic Enterprise Plugin Alternativen, und Capgo-Native Builds für den Produktworkflow in Capgo-Native Builds.

Live-Updates für Capacitor-Apps

Wenn ein Web-Schicht-Bug live ist, liefern Sie die Reparatur über Capgo anstatt Tage auf die Genehmigung des App-Stores zu warten. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Überprüfungsprozess bleiben.

Los geht's

Neuestes aus unserem Blog

Capgo gibt Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.