Electron / Atom Shellアプリのアプリアイコンを設定する方法


147

Electronアプリのアプリアイコンをどのように設定しますか?

私は試してBrowserWindow({icon:'path/to/image.png'});いますが、うまくいきません。

効果を確認するためにアプリをパックする必要がありますか?


あなたは従うことができますgithub.com/onmyway133/blog/issues/66
onmyway133

Macでできることの1つはpostinstall、.icnsファイルをnode_modules /の下に自動的にコピーするスクリプトをプロジェクトに配置することです。
セラム

回答:


164

icon作成時にプロパティを設定するBrowserWindowと、WindowsとLinuxにのみ影響します。

OS Xでアイコンを設定するには、electron-packagerを使用し、--iconスイッチを使用してアイコンを設定できます。

OS Xでは.icns形式である必要があります。.png からこのファイルを作成できるオンラインアイコンコンバーターがあります。


5
BrowserWindowのアイコンを.PNGファイルに設定すると、Windowsのタスクバーに表示されます。これが機能する例は、私のブログのmylifeforthecode.com/…にあります。__dirname + 'path / to / icon.png'に設定すると、機能するためにパスが絶対パスである必要がある場合があります。ただし、.exeのアイコンを設定するには、electron-packagerまたはリソースハッカーを使用する必要があります。
Shawn Rakowski、2015

この回答を修正して、Windowsに対して正確にしてください。
Ana Betts

@ShawnRakowskiに感謝します。そうです-私はこれをテストしたところ、アイコンプロパティは実際にWindowsでも機能します。これを反映するように回答を更新しました。
Alex Warren

1
これは最初はうまくいきましたが、その後、配布可能なアプリを友達に送信しましたが、うまくいきませんでした!何か案は?
2016

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ファイルのフォルダー)のパスであることに言及する価値があります。
コンスタンティン

.icns必要ありません ?
ishandutta2007 2007

20

macOSでもできます。コードではなく、いくつかの簡単な手順でわかりました。

  1. 使用する.icnsファイルを見つけて開き、[編集]メニューからコピーします
  2. 通常はnode_modules / electron / distでelectron.appを見つけます。
  3. 情報ウィンドウを開く
  4. 左上隅のアイコン(その周りの灰色の境界線)を選択します
  5. cmd + vでアイコンを貼り付けます
  6. 開発中にアイコンをお楽しみください:-)

ここに画像の説明を入力してください

実はこれは電子に限らず一般的なことです。このような多くのmacOSアプリのアイコンを変更できます。


6
これは素晴らしいです、ありがとうございます。私はそれを動かすためにドラッグアンドドロップする必要がありましたが、それにもかかわらず驚くべきことです。
Robert Masen

完全な手順:support.apple.com/kb/PH25383
locale

これは開発でのみ機能するようです。「yarn dist」を実行すると、icnsファイルがデフォルトのelectronで置き換えられます。
Dave

2
@デイブ実際に彼は言った6. Enjoy your icon during *development* :-)
ミア

ええと、私は知っています...しかし、この修正は2年以上前のものです... ;-)そして、ところで。この「ハック」は、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 /サブディレクトリの下にあり、アイコンがassets / icons /の下にある場合、次のアイコンパス指定が機能します。

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

0

電子パッケージャー


作成時にアイコンプロパティを設定するBrowserWindowと、WindowsおよびLinuxプラットフォームでのみ影響があります。あなたは最大の.icnsをパッケージ化する必要があります

OS Xでを使用しelectron-packagerてアイコンを設定するには、--iconスイッチを使用してアイコンを設定します。

OS Xでは.icns形式である必要があります。.pngからこのファイルを作成できるオンラインアイコンコンバーターがあります。

電子ビルダー


最新の解決策として、--iconスイッチを使用する別の方法を見つけました。これがあなたができることです。

  1. buildプロジェクトディレクトリにという名前のディレクトリを作成し.icns、アイコンをnamedとしてディレクトリに配置しますicon.icns
  2. commandを実行してビルダーを実行しelectron-builder --dirます。

アプリケーションのアイコンがそのディレクトリの場所から自動的に取得され、パッケージ化中にアプリケーションに使用されます。

:指定された答えは、electron-builderelectron-builder v21.2.0の最近のバージョンでテストされたものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.