OSXにて、指定したフォルダ内容からDMGイメージを作成する方法をまとめておく。
コマンド
指定したフォルダ内容から単にDMGファイルを作成するだけであれば、以下のようにコマンドを実行するだけ。
hdiutil create /path/to/output.dmg -volname "your favorite name" -srcfolder "/path/to/sourceFolder"
アイコンの配置や背景画像等、カスタマイズを行う場合は以下のように一度書き込み可能なイメージを作成後、読み出し専用イメージに変換する。
hdiutil create /path/to/temp.dmg -volname "your favorite name" -srcfolder "/path/to/sourceFolder" -format UDRW -size <size>m
hdiutil attach /path/to/temp.dmg
(ここで色々やる)
hdiutil detach /Volumes/your\ favorite\ name
hdiutil convert /path/to/temp.dmg -format UDZO -imagekey zlib-level=9 -o /path/to/output.dmg
補足事項
各コマンドの内容はhdiutilのヘルプを参照のこと。
hdiutil help
hdiutil create -help
といったようなコマンドで確認できる。
DMGファイルの作成元のフォルダであらかじめアイコン配置や背景画像の設定をしておいても、作成したDMGファイルには同じ設定が反映されない。
これは、DMGファイル作成時に.DS_Storeファイルが新しく作成されてしまうためのようで、DMGファイル作成後にDMGファイルのマウント先に作成元フォルダから.DS_Storeファイルをコピーしてやることで同じ設定を反映することができる。
ちなみに、.DS_StoreファイルをコピーしてもDMGファイルが書き込み可能な状態ではダメなようで、読み出し専用のDMGファイルに変換すると設定した通り表示されるようになる。