2016-06-03 17 views
2

Mit Elektron 1.2.1 und Electron-Packer 7.0.3, nach dem Erstellen des Symbols für das BrowserWindow nicht für Linux (Ubuntu 14.04 x64) zeigt, ist es die? Bild. Wenn ich die asar-Datei nicht erstelle, erscheint das Symbol. Wenn ich überprüfe, um sicherzustellen, dass die Datei vorhanden ist, wenn ich die App starte, sagt sie, dass sie existiert und ich kann sogar das fs-Modul verwenden, um sie außerhalb der Asar-Datei zu kopieren. Das Bild ist also da, aber es wird nicht von einem Elektron verwendet, wenn es sich in der Asar-Datei befindet.Electron Browser-Symbol nicht in Linux

Wenn ich die Datei außerhalb der ASAR-Datei habe und den Pfad zum BrowserWindow-Symbol config so ändere, dass sie mit dieser Datei übereinstimmt, wird das Symbol trotzdem nicht übernommen. Es ist also nicht relevant, ob die Datei in der ASAR-Datei enthalten ist. Es ist, wenn die App aus einer Asar-Datei geladen wird.

Ich verwende ein einfaches Beispiel:

var electron  = require('electron'), 
    BrowserWindow = electron.BrowserWindow, 
    Path   = require('path'), 
    fs   = require('fs'), 
    icon   = Path.resolve(__dirname, 'resources', 'foo.png'); 

electron.app.on('ready', function() { 
    var win = new BrowserWindow({ 
     width : 400, 
     height : 400, 
     title : 'Test', 
     icon : icon 
    }); 

    win.loadUrl('file://' + Path.resolve(__dirname, 'foo.html')); 

    win.openDevTools(); 

    //for dev 
    console.log(fs.existsSync(icon)); //reports true 
}); 

Wenn ich die existsSync in der Konsole über prüfen:

require('fs').existsSync(require('path).resolve(__dirname, 'resources', 'foo.png')); 

es sagt die Datei vorhanden ist. foo.png ist eine PNG 256x256-Datei. Versucht mit einer 32x32 und 64x64 PNG-Datei aber immer noch kein Glück.

Irgendwelche Ideen, was schief läuft?

+0

Wie verwenden Sie Elektron-Pacakger? – LuisPinto

+0

Das Problem herausgefunden ist, dass ich eine '.desktop'-Datei bereitstellen muss, aber keine Ahnung habe, wohin es gehen soll und ob es in der asar-Datei sein sollte (glaube ich nicht). Ich benutze 'grunt-electron', also die' electron'-Konfiguration, um die Konfigurationen für jede Plattform zu beschreiben. Alles, was es tut, ist die Zufuhr des Objekts zu "Elektron-Packager" – Ajaxier

Antwort

-1

Sie müssen eine .icns-Datei mit Ihrem Bild erstellen. Hier haben Sie eine website, um Ihre PNG in eine INCS-Datei zu konvertieren

Danach speichern Sie Ihre Datei in Ihrem Arbeitsverzeichnis und dem Include, wie Sie es tun.

mit elektronen Packager gibt es ein Symbol Option, so dass Sie auf das Symbol Pfad dort Puth, z:

electron-packager dashboard Netbeast --platform=linux --arch=all --version=0.37.2 --icon=dashboard/desktop_app/icon.icns 
+0

Wirklich? Ich habe nichts gesehen, das sagt, dass icns funktionieren würde, tatsächlich sehe ich Dinge, die sagen, dass PNG funktioniert. Trotzdem werde ich es versuchen, also danke für die Anleitung! –

+0

Leider hat das bei mir nicht funktioniert. Ändern Sie sogar den Pfad nicht innerhalb der Ressourcen. Hab es sogar außerhalb der Asar-Datei kopiert, es herumgeschoben, um jede mögliche Kombination auszuprobieren, und konnte immer noch nicht gehen. Mir wurde gesagt, ich solle eine '.desktop'-Datei erstellen, aber ich weiß nicht, wo ich sie hinstellen soll, wie ich sie in den Build einbaute. Einfach keine Anleitung dazu. –

+0

Siehe den obigen Befehl :) – LuisPinto

0

Dies ist wahrscheinlich ein Fehler. Hier ist ein Walkaround, der mir geholfen hat;

setTimeout(() => bw.webContents.openDevTools(), 100)