2016-06-03 1 views
2

electron 1.2.1 및 electron-packager 7.0.3을 사용하여 BrowserWindow 아이콘을 빌드 한 후 Linux (Ubuntu 14.04 x64)에 표시되지 않습니다. 영상. asar 파일을 만들지 않으면 아이콘이 나타납니다. 내가 응용 프로그램을 시작할 때 파일이 존재하는지 확인하면 파일이 존재 함을 나타내며 fs 모듈을 사용하여 asar 파일 외부로 복사 할 수도 있습니다. 따라서 이미지가 존재하지만 asar 파일 내에있을 때는 전자에 의해 사용되지 않습니다.전자 브라우저 아이콘이 Linux에 표시되지 않습니다.

파일을 asar 파일 외부에두고 해당 파일과 일치하도록 BrowserWindow 아이콘 구성에 대한 경로를 변경하더라도 아이콘이 여전히 선택되지 않으므로 파일이 asar 파일에 있는지 여부가 아닙니다. 앱이 asar 파일에서로드 된 경우입니다.

나는 간단한 예제를 사용하고 있습니다 : 내가 통해 콘솔에서 existsSync을 선택하면

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

는 :

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

이 파일이 존재했다. foo.png은 PNG 256x256 파일입니다. 32x32 및 64x64 PNG 파일로 시도했지만 여전히 운이 없습니다.

무슨 일이 벌어지고 있는지에 대한 아이디어가 있습니까?

+0

어떻게 전자 pacakger를 사용하고 있습니까? – LuisPinto

+0

문제점을 발견했는데'.desktop' 파일을 제공해야하지만 어디로 가야하는지, 그리고 asar 파일에 있어야하는지에 대한 단서가 없습니다. 나는'grunt-electron'을 사용하여 각 플랫폼에 대한 configs를 설명하는'electron' config을 사용합니다. 그게 객체를'전자 포장기 '에 넣는 것뿐입니다 – Ajaxier

답변

-1

이미지와 함께 .icns 파일을 만들어야합니다. 여기에서 website을 사용하여 png를 incs 파일로 변환하십시오.

그런 다음 파일을 작업 디렉토리와 포함하는 위치에 저장하십시오. 당신이 거기 아이콘 경로를 puth 있도록 전자 Packager로

예컨대, 아이콘 옵션이 있습니다 :

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

정말요? 나는 ICAN이 작동한다는 것을 전혀 보지 못했다. 사실 PNG가 작동한다는 것을 본다. 그럼에도 불구하고, 나는 그것을 줄 것이다 그래서 안내를 주셔서 감사합니다! –

+0

불행히도 이것은 나를 위해 작동하지 않았다. 심지어 경로를 리소스 내에서 변경하지 마십시오. asar 파일 바깥으로 복사하고 가능한 모든 조합을 시도하기 위해 이동했습니다. 필자는 .desktop 파일을 생성하라는 말을 들었지만 그 파일을 어디에 둘 것인지, 어떻게 빌드를 빌드에 포함 시킬지 모릅니다. 그것에 대한 지침이 없습니다. –

+0

위의 명령을 참조하십시오. – LuisPinto

0

이 아마 버그입니다. 나에게 도움이되는 둘러보기가있다.

setTimeout(() => bw.webContents.openDevTools(), 100) 
관련 문제