Wie kann ich eine Electron App signieren, bevor ich sie bündle (für Mac)?

8

Ich entwickle eine Electron-Anwendung für Mac OS X. Ich versuche, die automatische Update-Funktion bei der lokalen Entwicklung zu testen, vor der Bündelung als .app .

Ich habe eine erste Version meiner Anwendung erstellt, Foo.app , zusammen mit .dmg und .zip , die das electron-builder -Modul verwenden, um es als Update zu verwenden. Ich habe diese Dateien gehostet. Ich habe überprüft, dass sie korrekt installiert und ausgeführt werden. Und ich habe einen Squirrel-Server, der lokal läuft, der eine korrekte JSON-Nutzlast zurückgibt, die auf dieses .zip zeigt.

Um meine Anwendung lokal zu entwickeln, verwende ich Webpack, um meine Web-Assets zu übertragen und [email protected] zum Starten dieser Assets in Electron zu verwenden. Mit anderen Worten, wenn ich mich lokal entwickle, starte ich nicht das gebündelte .app ; Ich starte einen Dev-Server und serviere diese Assets in Electron. Der Prozess ähnelt dem Ausführen von $ electron . .

Das Problem tritt auf, wenn der Hook für automatische Aktualisierung in dieser Zeile aufgerufen wird:

%Vor%

Diese Zeile löst einen Elektronenfehler aus, der besagt:

%Vor%

OK, also mache ich eine Suche und sehe, dass es einige Handbücher gibt, die erklären, wie man eine Anwendung signiert:

Aber diese geben an, dass ich das .app signieren soll. Wie ich bereits erwähnt habe, versuche ich die automatische Aktualisierung zu testen, bevor ich sie als .app bündle. Ich würde es vorziehen, nicht immer wieder neu zu erstellen, bis ich Auto-Update richtig funktioniert.

Also mache ich eine andere Suche und sehe, dass es mehrere Forum-Fragen gibt, die mehr oder weniger die gleichen sind wie das, was ich frage:

Ich habe Probleme, die Lösung zu graben, um durch diese Threads zu graben. Ich hoffe, dass jemand mir eine klare Lösung geben kann, eine Electron-App zu signieren, bevor ich sie bündle.

Für eine Antwort hoffe ich, eine klare Antwort zu all diesen Fragen zu bekommen:

  • Ist es möglich, meine Electron-App vor der Bündelung als .app zu signieren? Das heißt, die Dateien, die ich mit $ electron . ?
  • starten würde
  • Wenn ja, wie?
  • Wenn nicht, warum? Und gibt es eine Möglichkeit, das Testen zu beschleunigen?
GladstoneKeep 17.01.2017, 15:08
quelle

1 Antwort

0

Long shot und ich habe das nicht verifiziert.

Squirrel.Mac überprüft das Signieren der aktuell laufenden Anwendung [ 1 ], dies ist die ausführbare Datei AppName.app/Contents/MacOS/AppName , wenn Sie eine gepackte App ausführen. Was grundsätzlich ein umbenanntes Elektron ist ausführbar.

Aber wenn Sie electron . ausführen, wird die ausführbare Datei von Ihrem node/bin -Verzeichnis ausgeführt. Electron ist nicht standardmäßig signiert. Wenn Sie es signieren, wird der automatische Updater möglicherweise mit der Zertifikatsprüfung erfolgreich sein.

Also im Grunde:

  1. Finde das Elektron: which electron
  2. Ändern Sie das Arbeitsverzeichnis in den Elektronenpfad
  3. Signiere Elektron mit codesign -s "Developer ID Application: YourCompanyName" electron
  4. Validiere die Codesignatur mit codesign -dvvv electron

Hoffentlich sollte das es schneiden.

    
Robin Andersson 18.12.2017 16:23
quelle

Tags und Links