有没有一种方法可以更改Macbook台式机应用程序上的图标,从而复制在Finder窗口中复制/粘贴图标时发生的相同操作?通过终端,node.js还是其他?到目前为止,我已经尝试过:
1)通过终端,删除并替换图标本身,我不喜欢这样,因为它会完全删除原始图标,并且不适用于每个应用程序。
2)通过node.js和终端,创建一个图标?文件,但是这也不在每个程序上都起作用,并且我在权限访问方面遇到了麻烦。如果有人对此有解决方案,我想听听。
3)使用applescript可以正常工作,但是一次遍历多个图标实在太麻烦了。
我已经搜索了好几天,但是信息非常有限或过时。我将不胜感激任何帮助!
答案 0 :(得分:1)
要更改应用程序的图标,我将shell脚本与applescript一起使用。 目标是在应用程序info.plist中更改“图标文件”,并将图标(文件)复制到应用程序的资源中。 “ application” .app / Contents / Resources /“。 在打开窗口以选择必须更改其图标的应用程序之后,所有操作都在一个小滴中完成,在该小滴上拖动所需的图标。 使用plutil,我将文件info.plist转换为xml1(我将其保存在“ .app / Contents / infoo.plist”下,以避免出现任何问题并找到原始文件)。要更改值“ Icon文件”,我使用“ / usr / libexec / PlistBuddy”和“ -c Set:” 要查看更改,您必须启动应用程序(其图标已更改),在扩展坞中,您必须看到新图标(如果扩展坞选项处于活动状态)
Droplet脚本下方
global testdir
on open draggedItems
repeat with currentItem in draggedItems
set icon_image_file_string to POSIX path of (draggedItems)
set {name:Nm, name extension:Ex} to info for POSIX file icon_image_file_string
set Nm to do shell script "echo " & Nm & " | sed 's#." & Ex & "##'"
set testdir to POSIX path of (choose file of type {"APPL"} with prompt "Choisissez l'Application pour changer son icone :")
set {name:Nmm, name extension:Ex} to info for POSIX file testdir
do shell script "plutil -convert xml1 " & quoted form of (testdir & "Contents/Info.plist ") & " | cat " & quoted form of (testdir & "Contents/Info.plist") & " >" & quoted form of (testdir & "Contents/Infoo.plist")
try
do shell script "cp -f " & quoted form of icon_image_file_string & " " & quoted form of (testdir & "Contents/Resources/")
end try
try
set icon_image_file to do shell script "/usr/libexec/PlistBuddy " & quoted form of (testdir & "Contents/Info.plist") & " -c \"Set:CFBundleIconFile " & Nm & "\""
end try
end repeat
end open