我有一個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中做到這一點?
看看這裏:http://www.owsiak.org/?p=683 - 我指的是相當古老,但仍然非常好的書。不幸的是,它可以通過SafariBooksOnline - 付費服務。 – mko
@mko我找到了背景圖片的說明,但沒有設置Finder中爲dmg文件本身顯示的圖標。 –