Mac以外のプラットフォームから.dmgファイル(アプリの配布用)を作成することはできますか?はいの場合、どのように?
いくつかのサードパーティツールを使用してDMGファイルを作成することは可能だと思われます。 Googleで簡単に検索すると、少なくともいくつかの商用ツールが見つかります。
OSS /フリーウェアのオプションについては定かではありませんが、少なくともあなたがそのように傾いているなら可能だと思われます。
編集: MacDrive も忘れました。これは、WindowsでHFS +ファイルシステムを操作するためのもう1つの優れたツールです。 DMGは基本的にHFS +ファイルシステムのスナップショットにすぎないため、MacDriveでDMGを作成することもおそらく可能です。
はい、mkfs.hfsplusがそれを行います。
dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg
これにより、Macにマウントできるdmgファイル(この場合は64M)が作成されます。 Linuxにマウントすることもできます。
mount -o loop /tmp/foo.dmg /mnt/foo
目的のコンテンツ(/ mnt/foo内)をコピーするだけです。マウントを解除すると、dmgをMacにコピーしてマウントできます。
私が取り組んでいるプロジェクトは、genisoimageを使用してLinuxでDMGファイルを作成します。
mkdir -p dmgdir/progname.app/Contents/{MacOS,Resources}
...copy your PkgInfo, Info.plist to Contents...
...copy your .icns to Resources...
...copy your other things to where you expect them to go...
genisoimage -V progname -D -R -Apple -no-pad -o progname.dmg dmgdir
本当に空想になりたい場合は、ボリューム名progname
および.DS_Store
と呼ばれるアプリバンドル(つまり、一致するもの)を持つMacで作成されたDMGからprogname.app
ファイルを盗むことができます。背景を.background/background.png
に、ルートディレクトリの/ Applicationsにシンボリックリンクを配置し、それをdmgdir
にあなた自身のシンボリックリンクと共に配置したMacで作成したい/Applications
。
git clone https://github.com/hamstergene/libdmg-hfsplus
cd libdmg-hfsplus && cmake . && make && cd dmg
./dmg --help
メイクファイル:
dmg:
genisoimage -D -V "$(PROJECT) $(VERSION)" -no-pad -r -Apple -o project-$(VERSION)-uncompressed.dmg $(DARWIN_DIR)
./dmg dmg project-$(VERSION)-uncompressed.dmg project-$(VERSION).dmg
非圧縮はそのまま使用できます。圧縮すると問題が発生する可能性があります-Origin /マスターは少なくともユキヒョウで「チェックサム」エラーを生成します
まだこのスレッドを見ている人がいるかどうかはわかりませんが、TransMacNik Reimanの推奨どおりに試しました。
このツールを使用して、Windows 7で実行し、OSX 10.8.でマウント可能なdmgファイルを作成できました。
マイナス
私たちにとって唯一の欠点は、このツールがコマンドラインに対応していないように見えることです。ビルドサーバー(Windowsベース)でdmgファイルをオンザフライでビルドできる自動化ツールを使用できるようにする必要があるため、私たちにとってはこれが契約違反となります。
Mkfs.hfsplusを参照してください