
macOSではシステムアイコンなどでなければカスタムアイコン(任意のアイコン)をアプリに指定してアプリのアイコンを変更できるが、アプリの更新(アップデート)があった場合は設定したカスタムアイコンはデフォルトに戻ってしまいアプリの更新の度にカスタムアイコンを設定し直す必要がある。
ここでは2021年1月17日にViacheslav Kharchenko氏がGitHubで公開したツール(シェルスクリプト)「macOS Icons Updater」で複数のカスタムアイコンを簡単に自動で変更する方法を紹介。
macOSのアイコン変更アプリとしては「LiteIcon」が有名だが、LiteIconはディスコンとなりBig Surでは使用不可になったため、こういったスクリプトは重宝する。
また、他にもPictogramというフリーのアイコン置き換えツールを利用する方法もある。
注意点として本シェルスクリプトでカスタムアイコンとして使用できるのはicnsファイルだけのためPNGなどの場合はオンラインコンバーターなどでicnsに変換しておこう。
また、有志が開発したmacOS Bgi Sur風のアイコンは無料・有料問わず下記記事でまとめている。

INDEX
macOS Icons Updaterの使い方

1. シェルスクリプトをダウンロード

まず上記ボタンからmacOS Icons Updaterのリリースページに飛んで最新版をダウンロード。
2. カスタムアイコンとシェルスクリプトを同じフォルダに入れる
続いてダウンロードしたシェルスクリプトと適用したいカスタムアイコンを同じフォルダに入れる。

今回は「Replace」という本シェルスクリプト専用のフォルダを作り、中にFirefox及びzoom用のカスタムアイコンファイルを入れた。
このシェルスクリプトでは前述の通りカスタムアイコンを一括適用できるが、一度に扱えるカスタムアイコンの上限数については特にアナウンスされていない。
3. カスタムアイコンをアプリ名と一致するようにリネームする

なお、カスタムアイコンの名前は適用したいアプリ名と同じでなければならないため、カスタムアイコンの名前とアプリ名が一致していない場合はカスタムアイコンの名前をリネームしよう。
4. ターミナルでシェルスクリプトを実行する
続いてターミナルを開いてcd(change directory)コマンドでシェルスクリプトとカスタムアイコンを入れたフォルダに移動する。

フォルダに移動する際は上記のようにフォルダをドラッグアンドドロップしてパスを入力しよう。
移動したら下記コマンドを入力してエンターキーを押しシェルスクリプトを実行する。
sudo zsh macos-icons-updater.sh

パスワードの入力を求められるので管理者パスワードを入力してエンターキー。

正常にシェルスクリプトが実行されれば上記のように「Updated icon(s) for〜」と表示され、DockとFinderが自動的に再起動される。
5. カスタムアイコンが適用されたのを確認して完了

DockとFinderの再起動後、カスタムアイコンがアプリに適用されていれば完了だ。
なお、macOSのDockのアイコンキャッシュは癖があり、例えアプリ自体のアイコンは変わっていてもDockのアイコンは以前のままで変わらない場合があるため、もしDockのアイコンが変わらない場合はアプリを再起動するかMac自体を再起動しよう。
まとめ
本シェルスクリプトでは従来のように手作業でカスタムアイコンをドラッグしたりLiteIconを使用する必要すらないため、複数のアプリにカスタムアイコンを適用したい場合はとても重宝するはず。
ちなみにmacOSではエイリアスを作ってエイリアスをロックするなど間接的な方法を除けばアプリ更新時にアイコンが自動的にデフォルトに戻ってしまうのを回避する方法はない。
macOSのアプリはパッケージ内のアイコンにロックをかけたとしても更新された際に強制的にデフォルトに戻るかブランクアイコンになってしまうので本シェルスクリプトのようなツールは大変ありがたい。