Appに署名してGatekeeperで保護する

macOSのGatekeeperは、Mac App Store以外で配信されたAppのDeveloper ID証明書を確認することにより、悪意のあるソフトウェアのダウンロードやインストールからユーザーを守ります。App、プラグイン、インストーラパッケージを配信する場合は、インストールが安全であることをGatekeeperが確認できるよう、必ず署名を付けるようにしてください。また、AppをAppleに提出して認証を受けることで、macOS Mojaveで実行するAppに対するユーザーの信頼をさらに高めることができます。

配信に向けて準備する

Developer ID証明書を使用することにより、Gatekeeperは、ユーザーがMac App Store以外の場所からダウンロードしたApp、プラグイン、インストーラパッケージを起動したときに、その開発元が信頼できるデベロッパであることを確認します。また、Developer ID証明書で署名したソフトウェアでは、CloudKitやApple Push Notificationsといった高度な機能を活用することもできます。

Developer ID証明書を生成する

Developer ID証明書は、Xcode内で、またはデベロッパアカウントの「Certificates, Identifiers & Profiles(証明書、ID、プロファイル)」セクションで生成できます。ただし、これを行うにはApple Developerプログラムの開発チームのAccount Holder(アカウントホルダー)である必要があります。

証明書の作成とエクスポートについてさらに詳しく(英語)

Appに署名してテストする

Hardened Runtime機能を有効にし、Appに必要な機能のエンタイトルメントをXcodeで宣言します。Appをアーカイブし、GateKeeperが有効になっているMacを使用して、Developer IDで署名したAppをエンドユーザーが起動する際の体験をテストします。

Appの配信準備についてさらに詳しく(英語)

Xcode 10

macOS Mojave向けのAppをビルドし、提出してAppleの認証を受けるには、Xcode 10以降(Mac App Storeで入手可能)を使用します。

ソフトウェアの認証を受ける

Appleに提出して認証を受けることで、ソフトウェアに対するユーザーの信頼をさらに高めることができます。この認証サービスは、Developer IDで署名されたソフトウェアを自動的にスキャンし、セキュリティチェックを実行します。配信の準備が完了すると、ソフトウェアにチケットが添付され、認証済みであることをGatekeeperが認識できるようになります。

Mac用ソフトウェアをアップロードして認証を受ける詳細な手順については、「配信前にAppの認証を受ける(英語)」および「Xcodeヘルプガイド(英語)」をご確認ください。

Xcodeを使用して提出する

未公開のソフトウェア。未公開のソフトウェアは、エクスポートの過程またはxcodebuildで、簡単に認証を受けることができます。アップロード用のxcrun altoolコマンドラインツールによるカスタムのビルドワークフローがサポートされており、xcrun staplerを使用すればパッケージにチケットを添付することができます。

公開済みのソフトウェア。公開済みのソフトウェアを提出するには、xcrun altoolコマンドラインツールを使用してアップロードします。いくつかのファイルタイプ(.zip、.pkg、.dmgなど)がサポートされているため、すでにユーザーに配信したものと同じパッケージをアップロードすることができます。

アップロードログを確認する

この認証サービスは、悪意のあるソフトウェアかどうかをチェックするだけでなく、ソフトウェアの正常なインストールを妨げる可能性のある、コード署名に関してよく発生する問題も検出します。アップロードしたソフトウェアの認証が失敗する場合は、ステータスログで詳細を確認してください。

認証に関するよくある問題を解決する方法についてさらに詳しく(英語)

今後予定されている要件

macOS Mojave 10.14以降のユーザーが、認証済みのApp、インストーラパッケージ、ディスクイメージを初めて起動すると、よりシンプルになったGatekeeperダイアログが表示され、既知のマルウェアではないことを確認することができます。

Developer IDで署名されたMac App、インストーラパッケージ、Kernel ExtensionをmacOS Catalina上で実行するには、Appleからの認証も受ける必要があります。