Node.js 以编程方式更改mac上的桌面应用程序图标。2019

Node.js 以编程方式更改mac上的桌面应用程序图标。2019,node.js,macos,shell,electron,desktop-application,Node.js,Macos,Shell,Electron,Desktop Application,是否有一种方法可以更改macbooks桌面应用程序上的图标,从而复制在finder窗口中复制/粘贴图标时发生的相同操作?通过终端、node.js或其他方式?到目前为止,我已尝试: 1) 通过终端,删除和替换图标本身,我不喜欢这样,因为它完全删除了原始图标,并且不能在每个应用程序上工作 2) 通过node.js和terminal创建图标?然而,这并不是在每个程序上都有效,我在访问权限方面遇到了问题。如果有人能解决这个问题,我想听听 3) 对于applescript,这是可行的,但同时循环多个图标对

是否有一种方法可以更改macbooks桌面应用程序上的图标,从而复制在finder窗口中复制/粘贴图标时发生的相同操作?通过终端、node.js或其他方式?到目前为止,我已尝试:

1) 通过终端,删除和替换图标本身,我不喜欢这样,因为它完全删除了原始图标,并且不能在每个应用程序上工作

2) 通过node.js和terminal创建图标?然而,这并不是在每个程序上都有效,我在访问权限方面遇到了问题。如果有人能解决这个问题,我想听听

3) 对于applescript,这是可行的,但同时循环多个图标对它来说太难了


我已经搜索了好几天了,但是信息要么非常有限,要么已经过时了。我将感谢任何帮助

要更改应用程序的图标,我将shell脚本与applescript一起使用。 目标是更改application info.plist中的“Icon file”,并将图标(文件)复制到应用程序的资源中。“application.app/Contents/Resources/”。 所有这些都在一个水滴中完成,我在上面拖动所需的图标,然后打开一个窗口来选择必须更改其图标的应用程序。 使用plutil,我将文件info.plist转换为xml1(保存在“.app/Contents/infoo.plist”下以避免任何问题并找到原始文件)。要更改值“Icon file”,我使用“/usr/libexec/PlistBuddy”和“-c Set:” 要查看更改,您必须启动应用程序(其图标已更改),在dock中您必须看到新图标(如果dock选项处于活动状态)

在水滴脚本下面

    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