电子应用文件关联 - 自定义图标不显示

时间:2017-12-12 13:25:57

标签: ios json electron file-association electron-packager

我正在尝试让我的电子应用程序的文件图标在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>

我打包并将其移至我的Applications文件夹后,检查应用程序的内容,并且Info.plist未使用上述信息进行扩展。

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

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

我的文件结构符合指南:

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

1 个答案:

答案 0 :(得分:0)

我自己遇到了这个问题。首先,你在package.json中的第一个片段与Electron Builder 不是 Electron Packager有关。

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

以下是我如何修复Electron Packager的图标问题:

在配置电子打包器时,您将指向plist文件,并添加一个条目以将图标文件复制到应用程序的resources文件夹中。

在您的电子包装程序配置中,您需要以下两个条目:

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

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

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

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

希望这有帮助!