web-dev-qa-db-ja.com

(Mac以外のプラットフォームで)dmg Mac OS Xファイルをビルドする方法は?

Mac以外のプラットフォームから.dmgファイル(アプリの配布用)を作成することはできますか?はいの場合、どのように?

52
michelemarcon

いくつかのサードパーティツールを使用してDMGファイルを作成することは可能だと思われます。 Googleで簡単に検索すると、少なくともいくつかの商用ツールが見つかります。

OSS /フリーウェアのオプションについては定かではありませんが、少なくともあなたがそのように傾いているなら可能だと思われます。

編集: MacDrive も忘れました。これは、WindowsでHFS +ファイルシステムを操作するためのもう1つの優れたツールです。 DMGは基本的にHFS +ファイルシステムのスナップショットにすぎないため、MacDriveでDMGを作成することもおそらく可能です。

8
Nik Reiman

はい、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にコピーしてマウントできます。

34
jstck

私が取り組んでいるプロジェクトは、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

29
uckelman
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 /マスターは少なくともユキヒョウで「チェックサム」エラーを生成します

8
name

まだこのスレッドを見ている人がいるかどうかはわかりませんが、TransMacNik Reimanの推奨どおりに試しました。

このツールを使用して、Windows 7で実行し、OSX 10.8.でマウント可能なdmgファイルを作成できました。


マイナス

私たちにとって唯一の欠点は、このツールがコマンドラインに対応していないように見えることです。ビルドサーバー(Windowsベース)でdmgファイルをオンザフライでビルドできる自動化ツールを使用できるようにする必要があるため、私たちにとってはこれが契約違反となります。

4
MattWeiler

Mkfs.hfsplusを参照してください

2
Josh