所以我有一个应用程序,我想更改其图标。如果我Contents/Resources/
通过 GUI 将新图标拖放到应用程序中,应用程序就会更新。
但是,如果我cp
在终端中单击图标,则图标不会更新,并且仍然显示原始图标或显示原始图标的略微损坏的版本。
我还需要做什么才能允许 .icns 通过终端更新(我需要能够为项目编写脚本。)
非常感谢。
答案1
也许有点晚了,但看看这个文章。
塞思·瓦尔戈 (Seth Vargo) 解释了他如何创建一个包含自定义图标的文件夹,~/.custom-icons
以及每次应用程序更新重置其图标时运行的一个小脚本。
function replace_icons() {
cp ~/.custom-icons/atom.icns /Applications/Atom.app/Contents/Resources/atom.icns
touch /Applications/Atom.app
sudo killall Finder && sudo killall Finder
}
答案2
我要检查两件事:
确保这是引用的
filename.icns
确切文件名Contents/_CodeSignature/CodeResources
Contents/PkgInfo
确保的权限
filename.icns
正确。如果您ls -l
从 内部运行Contents/Resources/
,您应该会看到filename.icns
拥有所有者root
和组wheel
,权限列为-rw-r--r--
。如果您没有看到,您需要运行以下命令来修复此问题:sudo chown root:wheel filename.icns
sudo chmod 644 filename.icns
如果您想了解有关权限的更多信息,请查看以下链接:
http://www.macinstruct.com/node/415 (有关权限和所有权的有用指南)
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/chown.8.html(chown 手册)
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/chmod.1.html(chmod 手册)