Zum Hauptinhalt springen

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

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

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

Abhängigkeiten in __CAPGO_KEEP_0__-Plugins hinzufügen Capacitor Plugins können überwältigend erscheinen, aber es wird einfacher, wenn man sie in klare Schritte aufteilt. Hier sind die wichtigsten Informationen:

  1. Die Werkzeuge verstehen:

    • JavaScriptVerwende dazu npm um Abhängigkeiten zu verwalten.
    • iOSVerwende dazu CocoaPods oder Swift Package Manager (SPM)
    • Android: Use Gradle für die Verwaltung von Abhängigkeiten.
  2. Konfigurieren Sie Ihre Entwicklungsumgebung:

  3. Starten Sie Ihr Capacitor Plugin-Projekt:

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

    • Use npm install zur Produktions- und Entwicklungsumgebung.
    • Update 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. Leistung optimieren:

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

    • Push-Updates sofort ohne App-Store-Bewertungen durchführen.

Rapide Vergleich der Werkzeuge:

Plattform Tool Beispiel-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'

Warum es wichtig istEffektive 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 man eine Capacitor Plugin für iOS/Android

Capacitor Framework Documentation Website

Einstellungen für Ihre Entwicklungsumgebung

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

Erforderliche Entwicklungswerkzeuge

Hier sind die erforderlichen Werkzeuge:

Werkzeug Version Zweck
Node.js 16.0.0+ JavaScript-Umgebung zum Laufzeitbetrieb
npm 8.0.0+ Paketverwaltung
Xcode 14.0+ iOS-Entwicklung (nur Mac)
Android Studio Elektrischer Eel+ Android-Entwicklung
CocoaPods 1.11.0+ iOS-Abhängigkeitsverwaltung
JDK 11+ Android-Buildwerkzeuge

Ein neues Plugin starten

Verwenden Sie die Capacitor CLI , um Ihr Plugin-Projekt zu starten. Dies umfasst die Einrichtung von Plattformen und die Namensgebung Ihres Plugins im umgekehrten Domänenformat (z.B. com.mycompany.plugin):

  1. Führen Sie 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, stelle sicher, dass dein Podfile enthält:

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

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

    Konfiguriere die folgenden Umgebungseinstellungen für deine Entwicklungswerkzeuge:

    Einstellung Zweck Beispielwert
    Beispielwert: Android-Home Android SDK Ort /Users/username/Library/Android/sdk
    JAVA_HOME Pfad der JDK-Installation /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    Xcode auswählen Xcode-Befehlszeilenwerkzeuge /Applications/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 Verpackungsinstallation

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

Fügen Sie sicherstellen Sie, dass Sie die Peer-Abhängigkeiten manuell in Ihrem package.json Datei. Überprüfen Sie alle Abhängigkeiten, um die Kompatibilität auf beiden Web- und Native-Plattformen zu bestätigen.

Verwalten Sie package.json

Hier ist ein Beispiel package.json Abhängigkeits-Typ

{
  "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, Versionsnummern von Abhängigkeiten entsprechend festlegen.

Verwendungszweck context Anwendungsfall
Genau “5.0.0” Für kritische Abhängigkeiten, die eine bestimmte Version erfordern
Karet “^5.0.0” Zulässt kleinere Updates und Patches
Tilde “~5.0.0” Einschränkt Updates auf Patches nur

Verwendung von JavaScript-Bibliotheken

When importing libraries, focus on reducing the bundle size:

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

Als nächstes erfahren Sie, wie Sie plattformabhängige Abhängigkeiten für iOS handhaben.

iOS-Abhängigkeiten

Dieser Abschnitt erklärt, wie Sie native iOS-Abhängigkeiten verwalten Capacitor Plugins Sobald Sie Ihre JavaScript-Abhängigkeiten eingerichtet haben, ist der nächste Schritt die Verwaltung von nativen iOS-Abhängigkeiten.

CocoaPods Einstellung

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 häufige Abhängigkeitskonfigurationsmuster:

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

Abhängigkeiten von Swift-Paketen

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 Methode ermöglicht Ihnen die Wahl zwischen CocoaPods und Swift Package Manager auf der Grundlage Ihrer Projektanforderungen.

Android-Abhängigkeiten

Konfigurieren Sie die Android-Abhängigkeiten, 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 in 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 die Abhängigkeiten konfiguriert sind, stellen Sie sicher, dass Sie die notwendigen Repositories einrichten.

Repository-Konfiguration

In Ihrem Projektverzeichnis build.gradleeinschließen Sie die erforderlichen Maven-Repositories:

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.

Kompabilitä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:

Problemtyp Strategie Beispiel
Versionenkonflikt Zwingen Sie eine bestimmte Version force 'com.google.code.gson:gson:2.10.1'
Mehrere Versionen Ein Modul ausschließen exclude group: 'org.json', module: 'json'
Transitive Probleme Strikte Versionen verwenden strictly 'androidx.core:core-ktx:1.10.1'

Beispielsweise können Sie konkurrierende Module wie folgt ausschließen:

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

Abschließend optimieren Sie Ihren Build-Prozess, indem Sie Caching und parallele Ausführung aktivieren in gradle.properties:

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

Capgo Integration

Capgo Live Update Dashboard-Interface

Die Verwendung von Capgo zusammen mit native und JavaScript-Abhängigkeitsverwaltung macht das Aktualisieren Ihres Plugins 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 geliefert wurden [1], Capgo ermöglicht Entwicklern die Aktualisierung von Abhängigkeiten und code sofort - keine App-Store-Überprüfung erforderlich. Aktualisierungen 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:

Feature Wie es funktioniert Hauptmetrik
Live Updates Kundenaktualisierungen 95% Benutzeraktualisierungsrate innerhalb von 24 Stunden
Teilaktualisierungen Teilaktualisierungen 434ms Durchschnittszeit für API Antwort
Versionierung Verwalten Sie mehrere Versionen 82% globale Erfolgsrate
Kanal-System Ziel spezifische Benutzergruppen Unterstützt mehrere Bereitstellungskanä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.

Einstellung von Capgo

Folgen Sie diesen Schritten, um Capgo in Ihr Projekt einzubinden:

  1. Installieren Sie das Capgo CLI

    Führen Sie folgenden Befehl in Ihrem Terminal aus:

    npx @capgo/cli init
  2. Konfiguriere Aktualisierungspräferenzen

    Verwende das Capgo-Dashboard, um die Bereitstellungskanäle und -präferenzen einzurichten. Beide cloudbasierte und selbstgehostete Konfigurationen werden unterstützt.

  3. Füge Aktualisierungslogik hinzu

    Fügen Sie diesen code in Ihrer Haupt-Plugin-Datei ein, 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 Aktualisierungen und die Benutzeraktivität. Funktionen wie eine ein-klickige Rückschaltung und Fehlerverfolgung helfen, Probleme schnell zu lösen und die Aktualisierungen Ihres Plugins reibungslos zu laufen zu lassen.

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 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 im Rahmen dieser Anleitung beschriebenen Schritte können Sie eine stabile und effiziente Pluginfunktion gewährleisten.

Best Practices

Um Abhängigkeiten effektiv zu verwalten, sollten Sie diese Praktiken beachten:

Praxis Vorteile Wie Sie Implementieren
Version Pinning Vermeidet unerwartete Probleme Verwenden Sie feste Versionen in package.json
Plattform-Isolierung Minimiert Konflikte Separate native Abhängigkeiten
Regelmäßige Updates Verbessert die Sicherheit Anwenden Sie kritische Patches rechtzeitig
Abhängigkeits-Überprüfung Risiken erkennt Laufen npm audit Regelmäßig

Mithilfe von live 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 bietet eine starke Leistung. Es erreicht einen beeindruckenden 95% user update rate within 24 hours und hält eine globale API-Antwortzeit von 434ms [1]. Mit Ende-zu-Ende-Verschlüsselung stellt es sicher, dass sichere Updates bereitgestellt werden, die sowohl den Apple- als auch den Android-Richtlinien entsprechen. Für Teams, die mehrere Plugin-Versionen verwalten, ermöglicht Capgo's Kanal-System gezielte Bereitstellungen für bestimmte Benutzergruppen.

Ein schneller Blick auf Capgo's Leistung:

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

Fahren Sie mit How to Add Dependencies in Capacitor Plugins fort

Wenn Sie __CAPGO_KEEP_0__ verwenden Wie Sie Abhängigkeiten in Capacitor Plugins hinzufügen 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 zur Implementierungsdetail in Capacitor Plugins durch Capgo Plugins hinzufügen oder aktualisieren zur Implementierungsdetail in Plugins hinzufügen oder aktualisieren Ionische Unternehmens-Plugin-Alternativen für das Produktworkflow in Ionic Enterprise Plugin Alternativen Capgo nativee Native Builds zur 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 zu warten, bis die App-Store-Zulassung genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Menschliche Unterstützung von Martin

Los geht's jetzt

Neueste von unserem Blog

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