Apple Silicon Unterstützung
Welche Schritte sind erforderlich, um deine Electron-App nach der Veröffentlichung der Apple Silicon-Hardware auf dieser zum Laufen zu bringen?
Mit der Veröffentlichung von Electron 11.0.0-beta.1 liefert das Electron-Team eine Version, welche auf der neuen Apple Silicon-Hardware laufen wird, welche Ende dieses Jahres veröffentlicht werden wird. Du kannst die neueste Beta-Version entweder mit Einbindung durch npm install electron@beta
oder direkt von unserer Webseite herunterladen.
Wie funktioniert das?
Ab Electron 11 werden wir für Intel Macs und Apple Silicon Macs verschiedene Versionen liefern. Vor dieser Änderung hatten wir bereits zwei Artefakte, darwin-x64
und mas-x64
, geliefert, wobei Letzteres speziell für die Veröffentlichung auf dem Mac App Store ausgerichtet war. Nun liefern wir zwei weitere Artefakte, darwin-arm64
und mas-arm64
, welche die entsprechenden Equivalente für Apple Silicon sind.
Was mich ich tun?
Du musst zwei Versionen deiner App veröffentlichen: eine für x64 (Intel Mac) und eine für arm64 (Apple Silicon). Die gute Nachricht ist, dass electron-packager
, electron-rebuild
und electron-forge
bereits die arm64
-Architektur unterstützen. Solange Du die aktuellsten Versionen dieser Pakete verwendest, sollte Deine App, sobald Du die Zielarchitektur arm64
benutzt, einwandfrei funktionieren.
wir werden in Zukunft ein Paket veröffentlichen, wo du deine arm64
und x64
Apps zu einer Datei "zusammenführen" kannst. Diese Datei währe aber gigantisch und daher nicht ideal zur Veröffentlichung.
Update: Dieses Paket ist ab sofort unter @electron/universal
verfügbar. Sie können es verwenden, um zwei gepackte x64 und arm64 Apps zu einem einzigen Binärprogramm zusammenzuführen.
Mögliche Probleme
Native Module
Da Sie auf eine neue Architektur abzielen, müssen Sie mehrere Abhängigkeiten aktualisieren, die zu Build-Problemen führen können. Die minimale Version bestimmter Abhängigkeiten ist unten für Ihre Referenz enthalten.
Abhängigkeit | Versionsvoraussetzung |
---|---|
Xcode | >=12.2.0 |
node-gyp | >=7.1.0 |
electron-rebuild | >=1.12.0 |
electron-packager | >=15.1.0 |
Aufgrund dieser Abhängigkeitsversionsanforderungen müssen Sie unter Umständen bestimmte native Module reparieren/aktualisieren. Eine Anmerkung ist, dass das Xcode Upgrade eine neue Version der macOS SDK einführen wird, was zu Build-Fehlern für Ihre nativen Module führen kann.
Wie kann ich es testen?
Derzeit laufen die Anwendungen von Apple Silicon nur auf der Apple Silicon Hardware, die zum Zeitpunkt des Schreibens dieses Blogeintrags nicht kommerziell verfügbar ist. Wenn Sie ein Entwickler-Transition Kit haben, können Sie Ihre Anwendung darauf testen. Andernfalls müssen Sie auf die Veröffentlichung der Apple Silicon Hardware warten, um zu testen, ob Ihre Anwendung funktioniert.
Was ist mit Rosetta 2?
Rosetta 2 ist Apples neueste Iteration ihrer Rosetta Technologie, mit der Sie x64 Intel-Anwendungen auf ihrer neuen arm64 Apple Silicon Hardware ausführen können. Obwohl wir glauben, dass x64 Electron-Apps unter Rosetta 2 laufen werden, gibt es einige wichtige Dinge zu beachten (und Gründe, warum Sie ein natives arm64-Programm erstellen sollten).
- Die Leistung Ihrer App wird erheblich beeinträchtigt. Electron / V8 verwendet JIT Kompilierung für JavaScript und aufgrund der Funktionsweise von Rosetta werden Sie effektiv JIT zweimal laufen lassen (einmal in V8 und einmal in Rosetta).
- Sie verlieren den Vorteil neuer Technologien in Apple Silicon, wie zum Beispiel die erhöhte Speicherseitengröße.
- Haben wir erwähnt, dass die Leistung signifikant beeinträchtigt sein wird?