Chapter 07無料公開

ファイルの関連付け (macOS)

Kei Touge
Kei Touge
2021.09.18に更新

https://www.electron.build/

electron-builder のインストール

bash
$ npm install --save-dev electron-builder

devDependencies としてインストールする必要があります。

https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file

ビルドスクリプトの作成

node ./build.js で実行する。

build.js
const { build } = require('electron-builder');

build({
  config: {
    directories: {
      output: 'release',
    },
    mac: {
      extendInfo: {
        CFBundleDocumentTypes: [
          {
            CFBundleTypeName: 'ImageFile',
            CFBundleTypeRole: 'Viewer',
            LSItemContentTypes: [
              'com.compuserve.gif',
              'public.jpeg',
              'public.png',
            ],
            LSHandlerRank: 'Default',
          },
        ],
      },
    },
  },
}).catch((err) => console.log(`Something went wrong...: ${err}`));

extendIndo エントリに指定したものが、パッケージ後に info.plist として出力される。

  • CFBundleDocumentTypes - パッケージがサポートするファイルの種類などを定めるエントリ
  • CFBundleTypeName - 扱うファイルの抽象的なくくり(「画像」など)
  • CFBundleTypeRole - アプリの役割 (Editor | Viewer | Shell | QLGenerator | None)
  • LSItemContentTypes - 扱うファイルの UTI
  • LSHandlerRank - 同じファイルを扱うアプリ間での優先順位 (Owner | Default | Alternate | None)

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html