以编程方式将应用程序图标添加到dock on install

时间:2012-11-19 09:48:45

标签: macos package dmg

我希望在安装软件包(DMG)后,我的应用程序会自动添加到Dock中吗?

有谁知道怎么做?

2 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点,安德鲁,其中很多都取决于你如何安装应用程序。

如果您使用的是PackageMaker来安装您的应用,则可以运行" postflight"脚本将您的应用程序图标添加到"默认值"码头的(即偏好)。 This older MacRumors thread shows how to do that

如果你没有使用PackageMaker,那么你可能必须在你的应用程序中运行一个Applescript来做同样的事情"默认"写作技巧。 Here's a thread on AskDifferent that shows how

在这两种情况下你都需要杀死停靠站(或Finder?)并重新启动它,以便让更改得到并显示。

答案 1 :(得分:0)

我建议您运行以下 AppleScript 代码,将 myapp 替换为您要添加到 de Dock 的应用程序,包括其路径。

在下面的示例中,我添加了系统应用“系统偏好设置”,但您可以对自己的路径进行同样的操作,只需将应用的路径分配给 myapp 变量即可。

 on run
   set myapp to "/Applications/System Preferences.app"
   try
     tell application "Dock" to quit
   end try
   do shell script "defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>" & myapp & "</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'"
   try
     tell application "Dock" to activate
   end try
 end run

这遵循 Michael 给出的建议,但它应该更温和,因为它只是退出 Dock 而不是感谢杀死它。

如果您更喜欢 bash,您可以运行以下代码,再次将您自己的应用程序的路径分配给 myapp 变量。

注意:在 bash 的情况下,您必须在指定路径时使用双斜杠,如示例中所示。

#!/bin/bash
myapp="//Applications//System Preferences.app"
defaults write com.apple.dock persistent-apps -array-add "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>$myapp</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>"
osascript -e 'tell application "Dock" to quit'
osascript -e 'tell application "Dock" to activate'