Zum Hauptinhalt springen

Wie man Abhängigkeiten in Capacitor-Plugins hinzufügt

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

Martin Donadieu

Martin Donadieu

Inhaltsmarketer

Wie man Abhängigkeiten in Capacitor-Plugins hinzufügt

Die Hinzufügung von Abhängigkeiten zu Capacitor Die Hinzufügung von Abhängigkeiten zu

  1. __CAPGO_KEEP_0__-:

    • 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:Verstehen Sie die Werkzeuge npm JavaScript
    • : Verwenden Sieum Abhängigkeiten zu verwalten. iOS": Verwenden Sie oder Swift Package Manager (SPM).
    • Android: Verwenden Sie Gradle für die Abhängigkeitsverwaltung.
  2. Konfigurieren Sie Ihre Entwicklungsumgebung:

  3. Starten Sie Ihr Capacitor-Plugin-Projekt:

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

    • Verwenden Sie npm install für Produktions- und Entwicklungszwecke.
    • Aktualisieren Sie package.json um Peer-Abhängigkeiten wie @capacitor/core.
  5. Behandeln Sie plattform-spezifische Abhängigkeiten:

    • 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:

    • Pins setzen, Abhängigkeiten überprüfen, Konflikte lösen, um Stabilität sicherzustellen.
  7. Verwenden Sie Werkzeuge wie Capgo zur Live-aktualisierung:

    • Push-Updates sofort ohne App-Store-Bewertungen.

Rapide Vergleich der Werkzeuge:

PlattformWerkzeugBeispiel Abhängigkeit
JavaScriptnpmnpm install lodash --save
iOSCocoaPods/SPMpod 'Alamofire', '~> 5.6.4'
AndroidGradleimplementation 'com.google.code.gson:gson:2.10.1'

Weshalb es wichtig ist: Effektive Abhängigkeitsverwaltung sichert die reibungslose Funktion Ihres Plugins auf allen Plattformen, spart Zeit und vermeidet Fehler. Lassen Sie uns tiefer in die Schritte eintauchen.

Wie Sie ein Capacitor Plugin für iOS/Android

Capacitor Framework Dokumentationswebsite

Ihre Entwicklungsumgebung einrichten

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

Erforderliche Entwicklungstools

Hier ist eine Liste der erforderlichen Werkzeuge:

WerkzeugVersionZweck
Node.js16.0.0+JavaScript-Ausführungsumgebung
npm8.0.0+Paketverwaltung
Xcode14.0+iOS-Entwicklung (nur Mac)
Android StudioElectric Eel+Android-Entwicklung
CocoaPods1.11.0+iOS-Abhängigkeitsverwaltung
JDK11+Android-Buildwerkzeuge

Ein neues Plugin starten

Verwenden Sie die Capacitor CLI zum Starten Ihres Plugin-Projekts. Dazu gehört 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.

Schritte zur Projekt-Einrichtung

  1. Aktualisieren package.json

    Ändern Sie Ihr package.json um Folgendes 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, ob Ihr build.gradle enthält:

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

    Konfigurieren Sie die folgenden Umgebungswerte für Ihre Entwicklungstools:

    VariablennameZweckBeispielwert
    ANDROID_HOMEAndroid SDK Ort/Users/username/Library/Android/sdk
    JAVA_HOMEPfad zur JDK-Installation/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    XCODE_SELECTXcode-Befehlszeilenwerkzeuge/Applications/Xcode.app/Contents/Developer

Sobald Ihr Projekt eingerichtet ist, seid Ihr bereit, sich auf die Verwaltung von JavaScript-Abhängigkeiten zu konzentrieren.

JavaScript-Abhängigkeiten

Die effektive Verwaltung von JavaScript-Abhängigkeiten ist entscheidend für eine stabile 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 einfügen. Testen Sie alle Abhängigkeiten, um die Kompatibilität auf beiden Web- und Native-Plattformen zu bestätigen.

Verwaltung von package.json

Hier ist ein Beispiel package.json Konfiguration:

{
  "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, passen Sie die Versionsnummern der Abhängigkeiten entsprechend an:

Abhängigkeits-TypBeispielVerwendungsfall
Genau”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”Beschränkt Updates auf Patches nur

Verwendung von JavaScript-Bibliotheken

Bei der Importierung von Bibliotheken liegt der Fokus auf der Reduzierung der Bundle-Größe:

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

Stellen Sie außerdem sicher, dass Fehler behandelt und Typen überprüft werden:

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

Diese Abschnitt erklärt, wie Sie native iOS-Abhängigkeiten verwalten. Capacitor-ErweiterungenEinmal Ihre JavaScript-Abhängigkeiten eingerichtet, ist der nächste Schritt die Verwaltung von native iOS-Abhängigkeiten.

CocoaPods Einrichtung

CocoaPods

Beginnen Sie mit der Initialisierung von CocoaPods in Ihrem iOS-Verzeichnis:

cd ios
pod init

Dann aktualisieren Sie Ihr 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 gängige Abhängigkeitskonfigurationsmuster:

BeschränkungstypBeispielVerwendungsfall
Genauer Versionpod 'KeychainAccess', '4.2.2'Wenn eine genaue Kontrolle erforderlich ist, wie bei Sicherheitskomponenten
Kleine Versionpod 'Alamofire', '~> 5.6'Für stabile APIs, die möglicherweise Patch-Updates erhalten
Große Versionpod 'SwiftyJSON', '> 5.0'Wenn Flexibilität bei Updates akzeptabel ist

Swift-Paket-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 __CAPGO_KEEP_0__

// 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 Android-Abhängigkeiten ein, um eine glatte native Integration sicherzustellen. Hier erfahren Sie, wie Sie Abhängigkeiten für Ihr Capacitor-Plugin verwalten.

Gradle Abhängigkeiten

Gradle Build Tool Interface

Fügen Sie die folgenden Konfigurationen 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 im buildscript Block:

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

Sobald 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")
    }
}

Mit den Repositories eingerichtet, beheben Sie etwaige Abhängigkeitskonflikte, die auftreten können.

Kompatibilitätsprobleme beheben

Um Abhängigkeitskonflikte zu handhaben, wenden Sie Versionserweiterungen 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 häufiger Abhängigkeitsprobleme:

Problem-TypStrategieBeispiel
VersionenkonfliktEine bestimmte Version zwingenforce 'com.google.code.gson:gson:2.10.1'
Mehrere VersionenEin Modul ausschließenexclude group: 'org.json', module: 'json'
Transitive ProblemeStrikte Versionen verwendenstrictly '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'
    }
}

Optimiere schließlich deinen 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

Das Kombinieren von Capgo mit native und JavaScript-Abhängigkeitsverwaltung macht das Aktualisieren deiner Plugin schneller und einfacher.

Über Capgo

Capgo ist eine Live-Update-Plattform, die für Capacitor-Plugins und -Apps konzipiert ist. Mit über 23,5 Millionen Updates, die in 750 Produktanwendungen übermittelt wurden [1]Capgo ermöglicht es Entwicklern, Updates für Abhängigkeiten und code sofort zu pushen - keine App-Store-Überprüfung erforderlich. Updates werden mit Ende-zu-Ende-Verschlüsselung gesichert und erfüllen sowohl die Apple- als auch die Android-Kompatibilitätsstandards.

Capgo Update-Funktionen

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

FunktionWas es tutSchlüsselmetrik
Live-UpdatesPushen Sie Updates in Minuten95% Benutzeraktualisierungsrate in 24 Stunden
TeilaktualisierungenHerunterladen nur geänderte Dateien434ms Durchschnittszeit für API Antwortzeiten
VersionskontrolleMehrere Versionen verwalten82% globale Erfolgsrate
Kanal-SystemZielgruppen spezifisch anpassenUnterstützt mehrere Auslieferungskanäle

Quelle: [1]

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

Capgo Einrichten

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 Update-Einstellungen

    Verwenden Sie das Capgo-Dashboard, um die Bereitstellungskanäle und -einstellungen einzurichten. Beide cloudbasierte und selbstgehostete Konfigurationen sind unterstützt.

  3. Hinzufügen von Update-Logik

    Fügen Sie diesen code zu Ihrem Haupt-Plugin-Datei hinzu, um Updates 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 Lieferung an unsere Benutzer!” - Rodrigo Mantica

Capgo bietet auch ein Analytics-Dashboard für Echtzeit-Einsichten in die Erfolgsraten von Updates und die Benutzeraktivität. Funktionen wie eine Rückkehr auf einen Klick und Fehlerverfolgung helfen, Probleme schnell zu lösen, und halten Ihre Plugin-Updates reibungslos laufen.

Zusammenfassung

Prozess-Überprüfung

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

Gute Praktiken

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

ÜbungVorteilWie man implementiert
VersionspinnungVermeidet unerwartete ProblemeVerwenden Sie feste Versionen in package.json
Plattform-IsolierungMinimiert KonflikteSeparate native Abhängigkeiten
Regelmäßige UpdatesVerbessert die SicherheitWenden Sie kritische Patches rechtzeitig an
AbhängigkeitsprüfungRisiken erkenntAusführen npm audit häufig

Mit lebendigen Aktualisierungstools wie Capgo können diese Praktiken weiter vereinfacht und verbessert werden, indem Echtzeitaktualisierungen 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 sicher, dass sichere Aktualisierungen erfolgen, die sowohl den Apple- als auch den Android-Richtlinien entsprechen. Für Teams, die mehrere Pluginversionen verwalten, ermöglicht Capgo's Kanal-System gezielte Bereitstellungen für bestimmte Benutzergruppen.

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

MesswertWert
Globale API Antwortzeit434ms
Update-Erfolgsrate82%
Benutzer-Update-Rate (24 Stunden)95%

Weitermachen von Wie man Abhängigkeiten in Capacitor-Plugins hinzufügt

Wenn Sie Wie man Abhängigkeiten in Capacitor-Plugins hinzufügt für die 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, Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren, Alternativen zu Ionic Enterprise Plugins für den Produktworkflow in Alternativen zu Ionic Enterprise Plugins, und Capgo Native Builds für den Produktworkflow in Capgo Native Builds.

Echtzeit-Updates für Capacitor-Anwendungen

Wenn ein Fehler im Web-Schicht lebt, liefern Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Los geht's

Aktuelle Beiträge aus unserem Blog

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