Dock からアプリのアイコンを削除するアプリケーション アンインストーラーを作成しています。インストール中に、コマンドラインで次のコマンドを使用してアイコンがドックに追加されました。
sudo -u "$USER" defaults write com.apple.dock persistent-apps -array-add "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/MyApplication.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>"
sudo -u "$USER" osascript -e 'tell Application "Dock"' -e 'quit' -e 'end tell'
アンインストール中に、次のシェル スクリプトを使用して Dock からアイコンを削除しています。
#!/bin/sh
# Get location of entry for our application in Dock
dloc=$(defaults read com.apple.dock persistent-apps | grep file-label\" | awk '/MyApplication/ {print NR}')
dloc=$((dloc - 1))
# Remove this entry from Dock's plist file : com.apple.dock.plist
/usr/libexec/PlistBuddy -c "Delete persistent-apps:$dloc" ~/Library/Preferences/com.apple.dock.plist
# Restart Dock to persist changes
osascript -e 'delay 3' -e 'tell Application "Dock"' -e 'quit' -e 'end tell' -e 'delay 3'
#killall Dock
上記のスクリプトにより、com.apple.dock.plist plist の永続アプリから MyApplication のエントリが正常に削除されていることがわかります。ただし、ドックを再起動した後も、ドックには以前と同じアイコンが表示されます。
誰か助けてくれませんか?
ありがとう、