Catalina(macOS 10.15)では、パブリックネットワーク上で配布されるアプリケーションを公証することが強く推奨されています。かなりの数の開発者が、接続されたストレージデバイスを使用して、またはファイル共有を介してアプリケーションを転送していますが、ユーザーがすでに開発者を信頼しているこれらのケースでは、公証は必要ではありません。公証の目的は、アプリケーションが悪意のあるものではないことをユーザーに保証することであり、ウェブサイトからダウンロードしたアプリケーションにのみ必要です。
4D v18でアプリケーションを構築する際に、ビルトイン署名機能を使用すれば、アプリケーションは公証される準備が整っています。このプロセスは、4Dの外部で行われます。このプロセスでは、申請書に電子署名を追加し、署名された申請書を自動検査サービスへ提出します。以下は、あなたが知るべきすべてのことです。
必要なもの
Xcode
Notarizationには、Xcode 10以降とmacOS 10.13.6以降が必要です。
Mac に複数のバージョンの Xcode がインストールされている場合、xcode-selectユーティリティを使用して適切なバージョンを選択することができます。
sudo xcode-select -s /path/to/Xcode10.app
2ファクタ認証
また、あなたのApple IDで2ファクタ認証を有効にしておく必要があります。
2ファクタ認証が設定されているかどうかわからない場合は、Apple IDのアカウントページにサインインしてください。セキュリティ」セクションで、2ファクタ認証オプションを検索し、機能がオンかオフかを確認します。
altoolのアプリ専用パスワード
公証のためのアプリケーションのアップロードは、Xcode に付属するaltool というアプリケーションローダープラグインのコマンドラインインターフェースを介して行われます。
最初のアプリケーションを公証する前に、altool用のアプリ固有のパスワードを生成する必要があります。
Apple ID のアカウントページにサインインします。セキュリティセクションで、「App-Specific Passwords」オプションの下にある「Generate Password」オプションをクリックし、要求されたパスワードラベルを入力し、「Create」ボタンをクリックします。
これで、Apple IDとアプリ固有のパスワードを使って、キーチェーン項目としてパスワードを保存することができます。
security add-generic-password -a "<apple_id>" -w "<password>" -s "altool"
4Dでアプリケーションに署名する
4D v18では、4Dのビルトイン署名スクリプトが更新され、公証に関するAppleのすべての要件を満たすようになりました。4Dは、パッケージのすべてのコンテンツに対して再帰的な署名を行い、署名には安全なタイムスタンプが含まれるようになりました。ハード化されたランタイムが有効になり、エンタイトルメントファイルが提供されます。機能制限を避けるために、すべての機能が “true “に設定されています。
zip アーカイブまたは dmg イメージの作成
.app バンドルは公証サービスに直接アップロードできないため、署名されたアプリケーションを含む圧縮アーカイブを作成する必要があります。
/usr/bin/ditto -c -k --keepParent "<path_to_app>" "<path_to_zip_archive>"
.zip アーカイブの代わりに.dmg イメージをアップロードすることもできます。
申請書のアップロード
次のコマンドを使用して、公証のためにアプリケーションをアップロードすることができます。
xcrun altool --notarize-app --primary-bundle-id "<primary_bundle_identifier>" --username "<apple_id>" --password "@keychain:altool" --file path_to_zip_archive
注意: 主要なバンドル識別子として任意の名前を使用できますが、スペース、アンダースコア、文字、数字、ハイフン、ピリオド以外のものを含んではいけません。
アップロードが成功すると、リクエストUIDが返されます。これは、後で公証依頼の状況を確認するときに使うために保存しておきます。
公証状況を確認する
公証手続きには最大で1時間かかることがあります。終了すると、その結果を示すメールが届きます。
Appleは2020年1月まで公証の前提条件を緩和しているため、2020年1月以降の公証を妨げる可能性のある警告が含まれていないか、詳細なレポートも請求して確認することをお勧めします。
詳細レポートは、以下のコマンドでリクエストでき、ステータスとログファイルのURLが返されます。
xcrun altool --notarization-info <request_uid> -u "<apple_id>" -p "@keychain:altool"
チケットをアプリケーションにホチキスで留める
アプリケーションの初回起動時にネットワーク接続ができない場合でも、Gatekeeper に公証済みであることを認識させるために、公証によって生成されたチケットをアプリケーションに添付することを推奨します。この作業を「ホチキス留め」と呼びます。
公証に.zipアーカイブを使用した場合、.zipアーカイブをステープリングすることはできないので、ステープラーツールはzipアーカイブにもともと追加された.appバンドルに対して実行する必要があることに注意してください。.dmgイメージを使用した場合は、.dmgイメージを直接ステープルすることができます。
ホチキス止めは以下のコマンドで処理します。
xcrun stapler staple <your_app_or_dmg_file>
すべてが完了したら、配布用にホチキス留めされたアプリケーションを含む新しい.zipアーカイブを作成することができます。
アップデート
最近のmacOSのバージョン(BigSur/xcode 12)では、変更が必要な場合があります。
Appleは現在、パスワードを使用して登録することを推奨しています。
xcrun altool --store-password-in-keychain-item "altool" -u "<apple_id>" -p "password"
また、アプリケーションのアップロードやチェックの際に -u や –username でユーザー名 (apple_id) を指定しないようになりました。
xcrun altool の最新のアップデートは、ターミナルを開いて入力してください。
xcrun altool --help