8 Reaktionen

How To: SDK-Erweiterungen ohne Add-on Builder erstellen

Geschätzte Lesedauer:

Der Add-on Builder war ein Online-Tool zum Erstellen von Firefox Add-ons direkt im Browser. Mozilla hat diesen vor wenigen Tagen eingestellt, so dass man nun anders vorgehen muss, um SDK-basierte Add-ons für Firefox zu erstellen. Dieses Tutorial erklärt das Vorgehen.

Mozilla hat den Add-on Builder am 7. Januar eingestellt, auf dem Add-on SDK basierende Add-ons können damit also nicht länger erstellt werden. Der Weg über die Kommandozeile ist aber sowieso vorzuziehen, da nur so alle Möglichkeiten des SDKs genutzt werden können.

Zunächst müssen die Systemvoraussetzungen erfüllt werden. Neben einer aktuellen Firefox-Version ist das Python, und zwar in Version 2.x, Python 3.x wird vom Add-on SDK nicht unterstützt. Als nächstes wird die aktuellste Version des Add-on SDKs benötigt, dieses kann über diesen Link heruntergeladen werden. Das Archiv muss entpackt werden, anschließend erfüllen wir alle Voraussetzungen zur Entwicklung. Ich empfehle, in diesem Verzeichnis einen weiteren Ordner für die Add-ons zu erstellen, zum Beispiel /addons/.

Um das Grundgerüst für ein neues Add-on zu erstellen, benötigen wir die Kommandozeile unseres Betriebssystems. Mit dieser navigieren wir in das Verzeichnis mit dem heruntergeladenen SDK und geben Folgendes ein:

Mac OS X / Linux:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

source bin/activate

[/pastacode]

Windows:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

bin\activate

[/pastacode]

Anschließend gehen wir in unser Add-on-Verzeichnis und erstellen dort ein Verzeichnis für unsere Erweiterung, zum Beispiel /testaddon/. In diesem Verzeichnis führen wir das Kommando cfx init aus – cfx ist das Werkzeug mit den Kommandos für das SDK:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

cd addons
mkdir testaddon
cd testaddon
cfx init

[/pastacode]

Damit wird die Verzeichnis- und Dateistruktur für das Add-on angelegt. Im /lib/-Verzeichnis befindet sich die Datei main.js, die wir wie gewohnt bearbeiten können. Dateien, welche vorher über den Add-on-Builder hochgeladen wurden, kommen in das /data/-Verzeichnis. Außerdem gibt es ein /doc/-Verzeichnis, in welches Dokumentation abgelegt werden kann, sowie ein /test/-Verzeichnis für Unit-Tests, welche über das cfx test-Kommando ausgeführt werden können. Auch eine Readme-Datei wird generiert.

Wir können Änderungen jederzeit testen, indem wir das Kommando cfx run benutzen. Dieses öffnet eine Firefox-Instanz mit temporärem und sauberem Profil, in welcher das Add-on bereits installiert ist:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

cfx run

[/pastacode]

Sind wir mit dem Add-on schließlich fertig und wollen eine fertige XPI-Datei packen, die wir beispielsweise auf addons.mozilla.org hochladen können, führen wir folgendes Kommando aus:

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

cfx xpi

[/pastacode]

Hinweis: Das erste Ausführen von cfx run oder cfx xpi wird nicht funktionieren:

No ‚id‘ in package.json: creating a new ID for you.
package.json modified: please re-run ‚cfx run‘

Bevor wir jedoch die XPI-Datei durch erneutes Ausführen wirklich erstellen werden, öffnen wir nun erst einmal die Datei package.json und füllen ein paar Meta-Angaben zum Add-on wie den Entwickler, den Titel, die Versionsangabe oder auch die Beschreibung aus. Außerdem empfehle ich das Ersetzen der ID durch etwas Menschen-lesbares. Die ID sollte das Format einer E-Mail-Adresse haben, wobei es sich dabei um keine real existierende E-Mail-Adresse handeln muss. Der Bezeichner muss allerdings einzigartig sein – es kann nur ein Add-on mit demselben Bezeichner geben. Und auch ein nachträgliches Ändern der ID von Add-ons, welche auf addons.mozilla.org gehostet werden, ist nicht möglich.

Abschließend führen wir also noch einmal cfx xpi aus und sind fertig.

[pastacode lang=“bash“ message=“Kommandozeile“ highlight=““ provider=“manual“]

cfx xpi

[/pastacode]

Diese Methode hat wie eingangs erwähnt Vorteile gegenüber der Erstellung mit dem Add-on Builder (welcher nun sowieso nicht mehr genutzt werden kann). So waren lokalisierte Erweiterungen über den Add-on Builder gar nicht möglich. Außerdem werden auf diesem Weg erstellte Erweiterungen standardmäßig (seit SDK-Version 1.15) ohne die APIs ausgeliefert, die sowieso in Firefox integriert sind. Damit ist die Dateigröße der erstellten Add-ons um ein Vielfaches kleiner als wenn das Add-on über den Add-on Builder erstellt worden wäre, welcher nur bis Version 1.14 des SDKs unterstützt hat. Diese Version konnte optional zwar auch Add-ons ohne mitgelieferte APIs erstellen, diese Einstellung konnte allerdings nicht über den Add-on Builder vorgenommen werden.

Die Dokumentation des Add-on SDKs befindet sich nun außerdem nicht länger auf addons.mozilla.org, sondern auf developer.mozilla.org. Eine vollständige Dokumentation des cfx-Werkzeuges inklusive aller Parameter findet sich hier.

Dieser Artikel wurde von Sören Hentzschel verfasst.

Sören Hentzschel ist Webentwickler aus Salzburg. Auf soeren-hentzschel.at informiert er umfassend über Neuigkeiten zu Mozilla. Außerdem ist er Betreiber von camp-firefox.de, der ersten Anlaufstelle im deutschsprachigen Raum für Firefox-Probleme aller Art. Weitere Projekte sind firefox.agenedia.com, mozilla.de, firefoxosdevices.org sowie sozone.de.

7 Kommentare - bis jetzt!

Eigenen Kommentar verfassen
  1. lagu
    schrieb am :

    danke

  2. Tester
    schrieb am :

    toll ich bekomme die meldung keine berichtigung

  3. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Den Add-on Builder git es schon lange nicht mehr. Bitte lies die Dokumentation, um Add-ons mit dem SDK zu erstellen, konkret den Getting Started-Abschnitt:

    https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials#getting-started

  4. tester
    schrieb am :

    war es ja … nach dem oben beschrieben scheme … bei eingabe von xpi in der konsole kommt die fehlermeldung in der konsole …

  5. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Wie ist die exakte und vollständige Fehlermeldung?

  6. tester
    schrieb am :

    keine berechtigung … ich vermute da ich untrer linux arbeite das das irgendetwas mit den rechten zu tun hat … vielleicht sollte das oben berücksichtigt werden,

  7. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Wenn die exakte Meldung „keine Berechtigung“ ist, auch auf Deutsch, dann kommt das definitiv nicht vom SDK, sondern vom System. Ich kann hier nicht die Funktionsweise der einzelnen Betriebssysteme abdecken, das würde den Rahmen sprengen. Zumal ich selbst ausschließlich OS X und Windows nutze. 😉

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
  1. Nach Absenden des Kommentar-Formulars erfolgt eine Verarbeitung der von Ihnen eingegebenen personenbezogenen Daten durch den datenschutzrechtlich Verantwortlichen zum Zweck der Bearbeitung Ihrer Anfrage auf Grundlage Ihrer durch das Absenden des Formulars erteilten Einwilligung.
    Weitere Informationen