カテゴリー
JUCE

Pluginを配布するためのNotarizationについて

SignされていないPkgファイルを配布すると、「身元不明の開発者」というアラートが出ます。これはPkgファイルがnotarizeされていないためです。

これにどう対処するかのメモです。

参考にした情報
Notarizing Installers For macOS Catalina
Apple Audio Plugin Notarization
Macでプラグインのインストーラーを作成する

まずは、ビルドの対象マシンをAny Mac(Apple Silicon, Intel)とします。

CertificateはDeveloper ID InstallerとDeveloper ID Applicationのふたつが必要です。

Keychain AccessからSigning requestを発行します。*このプロセスは有効期限内のCertificationがある場合はスキップ出来ます。むしろ、同じ名前のCertificationが二つ以上あると認証が上手く出来ません。(Updated 28 Feb 2024)

Keychain Access -> Certificate Assistant -> Request a Certificate From a Certificate Authority…
Emailと、入手したいCertificateに適当な名前をつけます。Saved to diskを選択すると、選択したフォルダにrequestが作成されます。
Show in Finderをクリックするとどこに保存されたのかを示してくれます。
Developer ID Installerを選択 -> Continue
G2 Sub-CAを選択し、Choose Fileで先ほど作成したRequestを選択、-> Continue

Certificateをダウンロードし、ダブルクリックするとKeychainに保存されます。

上記のプロセスをDeveloper ID Applicationにおいても繰り返します。

以下はビルド手順です。

Allを選択
Build ConfigurationはReleaseを選択
ビルドをすると/Users/<your_user_name>/Library/Audio/Plug-InsのVST3とComponentsにファイルが作成されます。

以下のコマンドでDeveloper ID Application 証書で codesignをします。

codesign --force -s "Developer ID Application: Your Team (XXXXXXXXXX)" ./ChordGenius.vst3 --timestamp --options runtime

codesign --force -s "Developer ID Application: Your Team (XXXXXXXXXX)" ./ChordGenius.component --timestamp --options runtime

sign済のファイルに対して 以下のpkgbuildコマンドでDeveloper ID Installer 証書を使って pkgファイルを作成します。

pkgbuild --root /Users/<your_user_name>/<path>/ChordGenius.vst3 --identifier app.kobito.ChordGenius --install-location /Library/Audio/Plug-Ins/VST3/ChordGenius.vst3 --version 1.0.0 --sign "Developer ID Installer: Your Team (XXXXXXXXXX)" --timestamp /Users/<your_user_name>/<path>/ChordGeniusVST3.pkg


pkgbuild --root /Users/<your_user_name>/<path>/ChordGenius.component --identifier app.kobito.ChordGenius.ChordGeniusAUv3 --install-location /Library/Audio/Plug-Ins/Components/ChordGenius.component --version 1.0.0 --sign "Developer ID Installer: Your Team (XXXXXXXXXX)" --timestamp /Users/<your_user_name>/<path>/ChordGeniusAUv3.pkg

ここでApp-Specific Passwordを作成します。

パスワードが登録されていると、以下のコマンドでTeam ID情報を確認出来ます。

xcrun altool --list-providers -u "<your_email_address"
// paste the app-specific password
// you'll get the Team ID information

パスワードをKeychainに登録します。

xcrun notarytool store-credentials --apple-id "<your_email_address>" --password "xxxx-xxxx-xxxx-xxxx" --team-id "XXXXXXXXXX"

// prompts to enter a profile name. can be any name.

最後に、notarytoolでpkgファイルをAppleに提出します。自動的にスキャンされ、問題がなければApproveされます。

xcrun notarytool submit /Users/<your_user_name>/<path>/ChordGeniusVST3.pkg --keychain-profile "<your_profile_name>" --wait