2017-07-28 9 views
0

私のnode.jsアプリケーション用の.dmgを作成するbashスクリプトがあります。ただし、Finderに表示される.dmgのアイコンが標準のディスクアイコンです。私はアプリと同じアイコンにする必要があります。プログラムで(できればbash)アイコンをdmgに追加する方法は?

Finderのmyappでcmd+Iを、アイコンをコピーして、私の.dmgにcmd+Iを貼り付けて貼り付けることができます。しかし、私はビルドプロセスを完全に自動化したい。私はすでにコード署名とローカライゼーションをbashスクリプトで実行しているので、これにはサードパーティのツールを使用しないことをお勧めします。

icnsを.VolumeIcon.icnsとして私のdmgのルートにコピーしようとしました。それは効果がありません。

私もSetFile -a C "path/to/dmg/.VolumeIcon.icns"を試しました。それでも効果はありません。man SetFileは、とにかく推奨されていません。私はmacOS Sierra 10.12.6をビルドしています。

単純なコピー&ペーストが機能するので、これをプログラムで実行する方法が必要です。しかし、どのように???

更新

これは部分的に動作します:

hdiutil create -srcfolder "my/build/dir" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -volname MyAppName -ov -attach "my/output/dir/MyAppName.uncompressed.dmg" 
SetFile -c icnC "/Volumes/MyAppName/.VolumeIcon.icns" 
SetFile -a C "/Volumes/MyAppName" 

それはた.dmgファイル自体にアイコンを関連付けていませんが、私はした.dmgファイルは、Finderウインドウをダブルクリックすると私のアイコンが表示されます。

しかし、主な必要性は.dmgファイルそのものです。誰かが私の.dmgをダウンロードすると、標準のディスクアイコンの代わりにアイコンを持つために、ダウンロードフォルダにある.dmgファイルが必要です。上で述べたように、これは手作業で簡単ですが、bashスクリプトやAppleScriptの中からどうすればいいですか?

+0

を見て、ここでください:http://www.owsiak.org/?p=683 - 私はかなり古い、しかしまだ非常に良い本を参照しています。残念ながら、SafariBooks Online - 有料サービスで利用できます。 – mko

+0

@mko dmgファイル自体のために、Finderに表示されるアイコンを設定するのではなく、背景イメージの指示が見つかりました。 –

答えて

1

のはあなたを言ってみましょうが、この

enter image description here

のようなイメージを持って、それは次のように保存されています:cc.png

cp cc.png cc_copy.png 
sips -i cc_copy.png 
DeRez -only icns cc_copy.png > icns.rsrc 
mkdir some_installer 
hdiutil create -volname installer -srcfolder ./some_installer -ov -format UDZO my_app.dmg 
Rez -append icns.rsrc -o my_app.dmg 
SetFile -a C my_app.dmg 

次の操作を行うと、あなたは、で終わるだろう:

enter image description here

あなたが探しているものということですか?

更新:

が同様ICNSのために働く必要があり

cp /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/macOS.icns . 
cp macOS.icns macOS_copy.icns 
sips -i macOS_copy.icns 
DeRez -only icns macOS_copy.icns > icns.rsrc 
hdiutil create -volname installer -srcfolder ./some_installer -ov -format UDZO my_app.dmg 
Rez -append icns.rsrc -o my_app.dmg 
SetFile -a C my_app.dmg 

enter image description here

+0

ありがとう、私はそれがまさに私が探しているものだと思うが、私は.icngで始まっていて、.pngではない。 .icnsから始めてこれを行う方法はありますか、それとも最初に.pngに変換する必要がありますか? –

+0

素晴らしい仕事、ありがとう!私の唯一の関心事は、Sierra 10.12.6のTerminalのmanページには、「Xcode 6で/ usr/bin/SetFileを含むCarbon開発をサポートするツールは推奨されていませんでした。 DeRezとRezにとっても同じことです。廃止されていない別の方法がありますか? –

+1

正直言って、他に何も使用していないので、dmgファイルで作業する他の方法はわかりません。実際、私はRezを使ってdmgファイルにライセンス・ステートメントを追加しています。http://www.owsiak.org/?p=700 – mko

1

SetFileコマンドの前に一歩足りなかった可能性があります。これを試して。ここ

SetFile -c icnC "path/to/dmg/.VolumeIcon.icns" 
SetFile -a C "path/to/dmg" 

詳細情報:http://docplayer.net/20858155-How-to-create-a-yosemite-installer.html

+0

Thanks - インストーラをダブルクリックすると開くFinderウィンドウにアイコンが表示されます。私は尋ねようとしていたものではありませんが、また役に立ちました。 –

関連する問題