Electron / Atom Shell 앱의 앱 아이콘을 설정하는 방법


147

Electron 앱의 앱 아이콘을 어떻게 설정합니까?

노력하고 BrowserWindow({icon:'path/to/image.png'});있지만 작동하지 않습니다.

효과를 보려면 앱을 포장해야합니까?



Mac에서 할 수있는 한 가지는 postinstall프로젝트에 .icns 파일을 node_modules / 아래에 자동으로 복사 하는 스크립트를 넣는 것입니다.
theram

답변:


164

icon작성시 특성을 설정하면 BrowserWindowWindows 및 Linux에만 영향을줍니다.

OS X에서 아이콘을 설정하려면 전자 패키지를 사용하고 --icon스위치를 사용하여 아이콘을 설정할 수 있습니다 .

OS X의 경우 .icns 형식 이어야합니다. .png에서이 파일을 만들 수 있는 온라인 아이콘 변환기 가 있습니다.


5
BrowserWindow의 아이콘을 .PNG 파일로 설정하면 Windows의 작업 표시 줄에 표시됩니다. 작동하는 예제는 내 블로그 ( mylifeforthecode.com/) 에서 찾을 수 있습니다. 경로를 __dirname + 'path / to / icon.png'로 설정하려면 경로가 절대적이어야 할 수도 있습니다. 그러나 .exe 아이콘을 설정하려면 electron-packager OR 리소스 해커를 사용해야합니다.
Shawn Rakowski

이 답변을 정확한 wrt Windows로 수정 하시겠습니까?
아나 베츠

@ShawnRakowski에게 감사합니다. 맞습니다. 방금 테스트 한 결과 icon 속성이 실제로 Windows에서도 작동합니다. 이것을 반영하여 답변을 업데이트했습니다.
Alex Warren

1
이것은 처음에는 효과가 있었지만 배포 가능한 앱을 친구에게 보냈는데 효과가 없었습니다! 어떤 아이디어?
Chet

10
@Nick 다음과 같은 작업을 수행해야합니다.electron-packager . YourApplicationName --all --icon "path/to/my/icon.ico"
Mateo

47

아래는 내가 가진 솔루션입니다.

mainWindow = new BrowserWindow({width: 800, height: 600,icon: __dirname + '/Bluetooth.ico'});

18
__dirname은 / src / 폴더의 경로입니다 (예 : app.js / main.js 파일의 폴더).
Konstantin

.icns필요하지 않습니까?
ishandutta2007

20

macOS에서도 가능합니다. 코드를 통하지 않고 몇 가지 간단한 단계를 수행하십시오.

  1. 사용하려는 .icns 파일을 찾아서 편집 메뉴를 통해 복사하십시오.
  2. 일반적으로 node_modules / electron / dist에서 electron.app를 찾으십시오.
  3. 정보 창을 엽니 다
  4. 왼쪽 상단에서 아이콘을 선택하십시오 (주변의 회색 테두리).
  5. cmd + v를 통해 아이콘 붙여 넣기
  6. 개발 중 아이콘을 즐기십시오 :-)

여기에 이미지 설명을 입력하십시오

실제로 그것은 전자에 국한되지 않는 일반적인 것입니다. 이와 같은 많은 macOS 응용 프로그램의 아이콘을 변경할 수 있습니다.


6
대단합니다. 감사합니다. 그래도 작동하려면 드래그 앤 드롭이 필요했지만 놀랍습니다.
Robert Masen 17


이것은 개발을 위해서만 작동하는 것 같습니다. 'yarn dist'를 실행하면 icns 파일이 기본 전자 파일로 바뀝니다.
Dave

2
@Dave 실제로 그는 말했다6. Enjoy your icon during *development* :-)
Mia

글쎄요 ... 알아요 ...하지만이 수정은 2 살이 넘었습니다 ... ;-) 그리고 btw. dist 앱에서 간단히 변경하기 때문에 최종 빌드에서도이 "해킹"을 사용할 수 있어야합니다. 잠시 동안 시도하지 않았습니다. ;-)
alexrjs

12

package.json이 업데이트되었습니다 .

"build": {
  "appId": "com.my-website.my-app",
  "productName": "MyApp",
  "copyright": "Copyright © 2019 ${author}",
  "mac": {
    "icon": "./public/icons/mac/icon.icns",     <---------- set Mac Icons
    "category": "public.app-category.utilities"
  },
  "win": {
    "icon": "./public/icons/png/256x256.png" <---------- set Win Icon
  },
  "files": [
    "./build/**/*",
    "./dist/**/*",
    "./node_modules/**/*",
    "./public/**/*",       <---------- need for get access to icons
    "*.js"
  ],
  "directories": {
    "buildResources": "public" <---------- folder where placed icons
  }
},

응용 프로그램을 빌드 한 후 아이콘을 볼 수 있습니다. 이 솔루션은 개발자 모드에서 아이콘을 표시하지 않습니다. 에 아이콘을 설정하지 않았습니다 new BrowserWindow().



1

작업 표시 줄에서 앱 아이콘을 업데이트하려면 main.js에서 다음을 업데이트하십시오 (typescript를 사용하는 경우 main.ts).

win.setIcon(path.join(__dirname, '/src/assets/logo-small.png'));

__dirnamepackage.json응용 프로그램 의 루트 디렉토리 (와 동일한 디렉토리 )를 가리 킵니다 .


맥은 확실해?
Anil8753

0

아이콘 파일 경로의 예제는 main.js가 기본 디렉토리 아래에 있다고 가정하는 경향이 있습니다. 파일이 앱의 기본 디렉토리에 없으면 경로 스펙이 해당 사실을 설명해야합니다.

예를 들어 main.js가 src / 서브 디렉토리에 있고 아이콘이 asset / icons /에 있으면이 아이콘 경로 스펙이 작동합니다.

icon: __dirname + "../assets/icons/icon.png"

0

전자 포장기


작성시 아이콘 특성을 설정하면 BrowserWindowWindows 및 Linux 플랫폼에 영향을줍니다. .icns를 최대로 패키지해야합니다.

을 사용하여 OS X에서 아이콘을 설정하려면 electron-packager--icon 스위치를 사용하여 아이콘을 설정하십시오.

OS X의 경우 .icns 형식이어야합니다. .png에서이 파일을 만들 수있는 온라인 아이콘 변환기가 있습니다.

전자 빌더


가장 최근의 해결책으로 --icon스위치 를 사용하는 대안을 찾았습니다 . 여기 당신이 할 수있는 일이 있습니다.

  1. build프로젝트 디렉토리에 이름이 지정된 디렉토리를 작성하고 이름이 지정된 디렉토리 .icns에 아이콘을 넣으십시오 icon.icns.
  2. command를 실행하여 빌더를 실행하십시오 electron-builder --dir.

응용 프로그램 아이콘이 해당 디렉토리 위치에서 자동으로 선택되어 패키징하는 동안 응용 프로그램에 사용됩니다.

참고 : 주어진 답변은 최신 버전의 electron-builder전자 빌드 v21.2.0에 대한 것이며

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.