电子应用程序文件关联 - 自定义图标未出现

Electron app file association - Custom icon not appearing

我正在尝试让我的电子应用程序的文件图标在 mac 上正常工作。

我的 package.json 有:

"fileAssociations": {
  "ext": [ "x" ],
  "name": "X",
  "description": "An x file",
  "icon": "xFile.icns",
  "role": "Editor",
  "isPackage": false
},

我也在package.json:

"extend-info": "Info.plist"

其中包含:

...<plist version="1.0">
<dict>
  <key>CFBundleDocumentTypes</key>
  <array>
    <dict>
      <key>CFBundleTypeExtensions</key>
      <array>
        <string>sql</string>
      </array>
      <key>CFBundleTypeIconFile</key>
      <string>xFile.icns</string>
      <key>CFBundleTypeName</key>
      <string>X File</string>
      <key>CFBundleTypeOSTypes</key>
      <array>
        <string>X</string>
      </array>
      <key>CFBundleTypeRole</key>
      <string>Editor</string>
      <key>NSDocumentClass</key>
      <string>SPDocumentController</string>
    </dict>
  </array>
  <key>CFBundleURLTypes</key>
  <array>
  </array>
</dict>
</plist>

打包并将其移动到我的应用程序文件夹后,我检查了应用程序的内容,Info.plist 没有使用上面的信息进行扩展。

虽然可以双击启动 .x 文件,但没有图标替换。

任何人都可以确认我的 .icns 文件和 .plist 文件的路径是否正确吗?它是相对于构建文件夹还是其他什么?

我的文件结构符合指南:

app folder:
 > package.json, main.js, etc.
 > build
   > icons & Info.plist

我自己 运行 进入这个问题。首先,package.json 中的第一个片段与 Electron Builder 而非 Electron Packager 有关。

因此,如果您打算使用 electron-packager,请确保您的 npm 运行 构建脚本使用它而不是构建器。

以下是我如何解决 Electron Packager 的图标问题:

在 electron-packager 的配置中,您将指向 plist 文件,并添加一个条目以将图标文件复制到应用程序的资源文件夹中。

在你的 electron-packager 配置中你需要这两个条目:

extraResource: "app/icons/document-icon.icns",
extendInfo: "build-files/Info.plist"

然后在你的 plist 中你可以只使用图标名称:

<key>CFBundleTypeIconFile</key>
<string>document-icon.icns</string>

最后,如果您之前已经关联了文件,您可能需要重新启动 Finder 才能生效。

希望对您有所帮助!