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

StackOverflow https://stackoverflow.com/questions/286419

  •  08-07-2019
  •  | 
  •  

質問

非Macプラットフォームから.dmgファイル(アプリの配布用)を作成することはできますか? もしそうなら、どうやって?

役に立ちましたか?

解決

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

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

編集: MacDrive も忘れました。これは、HFS +を操作するためのもう1つの優れたツールですWindowsの下のファイルシステム。 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 でMacで作成されたDMGから .DS_Store ファイルを盗むことができます。 > progname.app (つまり、Macで作成したいものと一致する)で、背景を .background / background.png に配置し、/ Applicationsへのシンボリックリンクを配置します。ルートディレクトリを作成し、それを dmgdir / Applications へのシンボリックリンクとともに配置します。

git clone https://github.com/hamstergene/libdmg-hfsplus
cd libdmg-hfsplus && cmake . && make && cd dmg
./dmg --help

Makefile:

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

uncompressedはそのまま使用できますが、圧縮すると問題が発生する可能性があります-オリジン/マスターは少なくともユキヒョウで「チェックサム」エラーを生成します

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

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


欠点

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

mkfs.hfsplusを参照

Macアプリを配布する場合は、確実に作成してテストするMacがあります。同じMacを使用してディスクイメージを作成しないのはなぜですか?

[編集]あるいは、Java .jarファイルなどのポータブルアプリを配布している場合、なぜディスクイメージに煩わされるのでしょうか。 Macは.zipおよび.tar.gzアーカイブを問題なく理解します。

私が得ているのは、DMGディスクイメージがどのように必要なのか理解していないが、それを作成するMacがないということだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top