2017-07-28 66 views
0

我有一個bash腳本,爲我的node.js應用程序創建一個.dmg。但是,Finder中出現的.dmg圖標是標準磁盤圖標。我需要它與應用程序的圖標相同。如何以編程方式(最好是bash)將圖標添加到dmg?

我知道我可以cmd+I在我的.app在Finder,複製圖標,和cmd+I我的.dmg和粘貼。但是我希望我的構建過程能夠完全自動化。我不想爲此使用第三方工具,因爲我已經在我的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文件時,我需要坐在Downloads文件夾中的.dmg文件具有我的圖標,而不是標準磁盤圖標。如上所述,這很容易手動,但我怎樣才能從一個bash腳本或AppleScript中做到這一點?

+0

看看這裏:http://www.owsiak.org/?p=683 - 我指的是相當古老,但仍然非常好的書。不幸的是,它可以通過SafariBooksOnline - 付費服務。 – mko

+0

@mko我找到了背景圖片的說明,但沒有設置Finder中爲dmg文件本身顯示的圖標。 –

回答

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

謝謝,我想這正是我正在尋找的,但我實際上是從一個圖標開始,而不是一個.png。有沒有辦法做到這一點從一個圖標開始,或者我需要先將其轉換爲.png? –

+0

工作很好,謝謝!我唯一關心的是來自Sierra 10.12.6終端的手冊頁,他說:「支持碳開發的工具,包括/ usr/bin/SetFile,已經被Xcode 6棄用了。」 DeRez和Rez也是如此。有沒有不推薦使用的另一種方法? –

+1

說實話,我從來沒有使用過其他任何東西,所以,我不知道其他使用dmg文件的方式。實際上,我也使用Rez將許可證聲明添加到dmg文件中:http://www.owsiak.org/?p=700 – mko

相關問題