Python
MacOSX
Electron
インストーラー

[Mac]自作アプリの配布用ディスクイメージの作り方

dmgbuildというツールを使って、PythonやElectronなどで作成したアプリ(それ以外でも可)を配布するためのディスクイメージファイルの作成方法を紹介します。

Macの野良アプリはdmgという拡張子のディスクイメージファイルで配布するのが一般的です。通常dmgファイルを開くと中にアプリが入っていて、Applicationフォルダにコピーすることでインストールが完了します。dmgbuildはそのようなdmgファイルを作ることができます。

インストール

dmgbuild自体はPythonで書かれたツールです。次のようにしてインストールします。

pip install dmgbuild

設定

dmgbuildのソースにそのまま使えるサンプルがありますので、それを利用します。

wget https://raw.githubusercontent.com/al45tair/dmgbuild/master/examples/settings.py

settings.pyを編集すれば、ライセンスや、アイコンなどをカスタマイズすることができますが、取り急ぎデフォルトのまま使います。

実行

ここではこの記事にあるPythonのQt5アプリの配布ディスクを作ってみます。記事に従ってqt.app作成後、次のコマンドを実行します。

dmgbuild -s settings.py -D app=qt.app "My Application" MyApp.dmg 

ファインダーでみると見慣れたdmgのアイコンが出来上がっています。

Screen Shot 2017-12-29 at 3.31.39 PM.png

インストールしてみる

MyApp.dmgをダブルクリックすると、ディスクイメージがマウントされ、インストール画面になります。

Screen Shot 2017-12-29 at 3.33.21 PM.png

アプリのアイコンをApplicationsにドラッグ&ドロップして完了です。

Electronアプリの配布

Electronで作ったアプリの配布イメージも作ってみました。次のアプリを例にやってみます。

https://github.com/bradtraversy/electronshoppinglist

git clone https://github.com/bradtraversy/electronshoppinglist
cd electronshoppinglist
npm install
npm run package-mac
cd release-builds/shoppinglist-darwin-x64
wget https://raw.githubusercontent.com/al45tair/dmgbuild/master/examples/settings.py
dmgbuild -s settings.py -D app=shoppinglist.app "shopping list" shopping.dmg

インストーラを起動してみたところ、アイコンがすでに正しくセットされています。
Screen Shot 2017-12-29 at 3.51.51 PM.png

アプリの作成も配布も従来の方法よりかなり手軽になりますね!