この章では、アプリケーションにアイコンをつける方法と、 アプリケーションのいろいろな設定ができる Info.plist などの アプリケーションバンドルについて説明します。
このコーナーでは、任意のテキストエディタでコードを記述し、 ターミナルを使ってビルドする方法を説明しています。
ただし、Swift コンパイラや SwiftUI フレームワークなどを Mac にインストールするために Xcode をインストールして、 一度起動させなければなりません。インストールが終われば Xcodeは終了してください。
なお、アプリケーションを App Storeに提出するには、 Xcode を使わなければならないかもしれません。 どこかで Xcode を使わずに提出する方法を見たような気もするのですが...
私の開発環境は次のとおりです。
更新履歴
2022/07/06 新しいアイコンが反映されない場合の対処法を追加しました。
新しいアイコンが反映されない場合
この章では macOS アプリにアイコンをつける方法と、macOS アプリに プリケーションの名前を設定する方法を説明します。
macOS では、アプリケーションを、「アプリケーションバンドル」 とよばれる特殊なフォルダで管理します。アプリケーションバンドルを使うと ダブルクリックでターミナルを開かずにアプリケーションを起動できたり、 アプリケーションにアイコンや画像をつけることができます。
アプリケーションバンドルは次のようなディレクトリ構成になります。
Foo.app
-Contents
--Info.plist
--MacOS
---foo
--Resources
---アイコン.icns
Foo.app/Contents
私は次のサイトから .icns ファイルをダウンロードしました。
フリーアイコンSVG、PNG、ICO、ICNS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>foo</string>
<key>CFBundleIconFile</key>
<string>icon-macbook.icns</string>
<key>CFBundleName</key>
<string>Hello</string>
</dict>
</plist>
Info.plist には、いろいろな設定を書き込めますが、今回は三つだけ設定しました。
Note
新しいアイコンを設定しても、実際には変わらない場合が多々あると思います。
「どのディレクトリのどのアプリケーションバンドルのアイコンはこれだ。」
という強力なキャッシュがかかっているみたいです。
その場合は、新しいアイコンが反映されない場合
の操作をしてください。
アプリケーションバンドルの名前が Foo のままですが、 これは Hello などの名前に自由に変えられます。ここではこのまま進めます。
アプリケーションの名前が Hello に変わっています。
アバウトボックスにも指定したアイコンとアプリケーション名がつきます。
ヘルプにも指定したアイコンとアプリケーション名がつきます。
ドックのアイコンも変更されています。
アプリケーションバンドルの名前が Foo のままですが、 これは Hello などの任意の名前に変えても大丈夫です。
新しいアイコンを用意して、Info.plist を書き換えても、 新しいアイコンが反映されない場合があります。その場合は次の作業をしてください。 ライブラリのファイルを操作するのは怖いという方には、 無理にはお勧めしません。
// ターミナルを起動して次のようにコマンドします。
cd /Library/Caches/com.apple.iconservices.store
sudo su
// パスワード入力を求められます。
ls
// 多くのアイコンがキャッシュされています。
// どれがどのアイコンのキャッシュなのか分からないのですべて削除します。
rm *
この作業でドックとアバウトボックスのアイコンは反映されたと思います。 アプリケーションバンドル自身のアイコンが反映されてない場合は、