Mac 以外のプラットフォームから .dmg ファイル (アプリの配布用) をビルドすることはできますか? はいの場合、どのように?
7 に答える
はい、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
本当に派手にしたい場合は.DS_Store
、Mac で作成された DMG からファイルを盗むことができます。このファイルには、ボリューム名progname
とアプリ バンドルが呼び出されます (つまり、Mac から作成したいものに一致しprogname.app
ます)。.background/background.png
ルート ディレクトリの /Applications へのシンボリック リンクを作成し、dmgdir
それを への独自のシンボリック リンクと一緒に配置します/Applications
。
最後に、圧縮された DMG を作成する場合は、 libdmg-hfsplusから dmg ツールを取得します。
dmg uncompressed.dmg compressed.dmg
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
非圧縮はすぐに使用できます。圧縮は問題を引き起こす可能性があります - オリジン/マスターは少なくとも Snow-Leopard で「チェックサム」エラーを生成します
一部のサードパーティツールを使用してDMGファイルを作成することは可能のようです。グーグルですばやく検索すると、少なくともいくつかの商用ツールが見つかります。
OSS /フリーウェアのオプションについてはよくわかりませんが、少なくともその傾向があれば可能だと思われます。
編集: WindowsでHFS+ファイルシステムを操作するためのもう1つの優れたツールであるMacDriveについても忘れました。DMGは基本的にHFS+ファイルシステムのスナップショットであるため、MacDriveを使用してDMGを作成することも可能です。
mkfs.hfsplus を参照
Mac アプリを配布している場合は、それらを作成してテストするための Mac が必要です。同じ Mac を使用してディスク イメージを作成しないのはなぜですか?
[編集] あるいは、移植可能なアプリ (Java .jar ファイルなど) を配布している場合、ディスク イメージを気にする必要はありません。Mac は .zip および .tar.gz アーカイブを問題なく認識します。
私が理解しているのは、DMG ディスク イメージが必要なのに、それを作成するための Mac を持っていないということです。