Gatekeeperを利用するためのアプリへの署名
macOSのGatekeeperは、Mac App Store以外で配信されたアプリのDeveloper ID証明書を確認することで、悪意のあるソフトウェアのダウンロードやインストールからユーザーを守ります。アプリ、プラグイン、インストーラパッケージを配信する場合は、インストールが安全であることをGatekeeperが確認できるよう、必ず署名を付けてください。また、アプリをAppleに提出して公証(ノータリゼーション)を受けることで、macOS Mojave以降で実行するアプリに対するユーザーの信頼をさらに高めることができます。
配信に向けた準備
Developer ID証明書を使用することにより、Gatekeeperは、ユーザーがMac App Store以外の場所からアプリ、プラグイン、インストーラパッケージをダウンロードして起動したときに、その開発元が信頼できるデベロッパであることを確認します。また、Developer ID証明書で署名したソフトウェアでは、CloudKitやApple Push Notificationsといった高度な機能を活用することもできます。
Developer ID証明書の生成
Developer ID証明書は、Xcode内で、またはデベロッパアカウントの「Certificates, Identifiers & Profiles(証明書、ID、プロファイル)」セクションで生成できます。ただし、これを行うにはApple Developer Programに登録された開発チームのAccount Holderである必要があります。
アプリへの署名とテスト
Xcodeでは、Hardened Runtime機能を有効にし、アプリに必要な機能のエンタイトルメントを宣言できます。その後アプリをアーカイブし、Developer IDで署名したアプリをMacで起動し、起動時のユーザー体験をテストします。
Xcode
macOS向けのアプリをビルドし、提出してAppleの公証を受けるには、Mac App Storeで入手できる最新バージョンのXcodeを使用します。
ソフトウェアの公証手順
Appleに提出して公証を受けることで、ソフトウェアに対するユーザーの信頼をさらに高めることができます。この公証サービスは、Developer IDで署名されたソフトウェアを自動的にスキャンし、セキュリティチェックを実行します。配信の準備が完了すると、ソフトウェアにチケットが割り当てられ、公証済みであることをGatekeeperが認識できるようになります。
Mac用ソフトウェアをアップロードして公証を受ける詳細手順については、「macOSソフトウェア配信前の公証」および「Xcodeのドキュメント」をご確認ください。
Xcodeを使用した提出
未公開のソフトウェア:未公開のソフトウェアは、エクスポートの過程またはxcodebuildで、簡単に公証を受けることができます。アップロード用のxcrun notarytoolコマンドラインツールによるカスタムのビルドワークフローがサポートされており、xcrun staplerを使用すればパッケージにチケットを割り当てることができます。
公開済みのソフトウェア:公開済みのソフトウェアを提出するには、xcrun notarytoolコマンドラインツールを使用してアップロードします。いくつかのファイルタイプ(ZIP、PKG、DMGなど)がサポートされているため、すでにユーザーに配信したものと同じパッケージをアップロードすることができます。
アップロードログの確認
この公証サービスは、悪意のあるソフトウェアかどうかをチェックするだけでなく、ソフトウェアの正常なインストールを妨げる可能性のある、コード署名に関してよくある問題も検出します。アップロードしたソフトウェアの公証が失敗した場合は、ステータスログで詳細を確認してください。
利用要件
altoolコマンドラインユーティリティまたはXcode 13以前を使用して、Appleの公証サービスでMacソフトウェアの公証を受けている場合、notarytoolコマンドラインユーティリティに移行するか、Xcode 14以降にアップグレードする必要があります。2023年11月1日以降、Apple公証サービスではaltoolまたはXcode 13以前からのアップロードは受領されなくなります。すでに公証を受けているソフトウェアは、引き続き正しく機能します。