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以前からのアップロードは受領されなくなります。すでに公証を受けているソフトウェアは、引き続き正しく機能します。