参考記事: Electronアプリのリリースまでの手順(署名、公証など)
Electronを使ってmacOSアプリケーションを開発・配布する際、Apple Developer IDによる署名と公証は避けて通れない重要なステップです。しかし、ウェブ上の情報は古かったり曖昧だったりすることが多く、実際に作業を進めると様々な落とし穴があります。
この記事では、私が実際にElectronアプリの署名・公証を行った際につまずいたポイントと、その解決策を共有します。なお、本記事はelectron-builderを使用したビルドプロセスを前提としています。
Apple Developer IDの作成について
重要:Xcodeから作成すること
Apple Developer IDを作成する際の最も重要なポイントは、必ずXcodeから行うということです。
私の失敗談:
- 最初、Apple Developerのウェブサイトから証明書を作成しました
- Keychainへの登録も手動で行い、一見問題なさそうに見えました
- しかし、実際にビルド時に署名しようとすると、様々なエラーが発生しました
Xcodeでの作成手順
- Xcodeを開く
- メニューから「Xcode」→「Settings」→「Accounts」を選択
- Apple IDでサインイン
- 「Manage Certificates」をクリック
- 「+」ボタンから「Developer ID Application」を選択
この方法で作成すると、証明書が自動的にKeychainに正しく登録され、ビルド時に自動で参照されます。
ビルド時の環境変数について
必要な環境変数
Electronアプリの署名・公証を行うには、以下の環境変数を設定する必要があります:
# Apple Developerに登録したメールアドレス
export APPLE_ID="your-email@example.com"
# アプリ用のパスワード
export APPLE_APP_SPECIFIC_PASSWORD="xxxx-xxxx-xxxx-xxxx"
# チームID
export APPLE_TEAM_ID="XXXXXXXXXX"
アプリ用パスワードの取得方法
- Apple IDアカウント管理ページにアクセス
- 「サインインとセキュリティ」→「アプリ用パスワード」を選択
- 新しいアプリ用パスワードを生成
チームIDの確認方法
Apple Developerにアクセスして、右上のメンバーシップの詳細で確認できます。
不要な環境変数
Xcodeで証明書を作成した場合、以下の環境変数は不要です:
CSC_LINK
CSC_KEY_PASSWORD
これらは手動で証明書を管理する場合に必要ですが、Xcodeで作成した場合は自動的に処理されます。
公証プロセスについて
初回公証は時間がかかる
初めてアプリを公証する際は、かなりの時間がかかることがあります。気長に待ちましょう。
公証の進捗確認
公証の状態を確認するには、以下のコマンドを使用します:
xcrun notarytool history \
--apple-id your-email@example.com \
--team-id XXXXXXXXXX \
--password xxxx-xxxx-xxxx-xxxx
実行結果の例:
Successfully received submission history.
history
--------------------------------------------------
createdDate: 2025-05-25T10:30:45.123Z
id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
name: YourApp.zip
status: Accepted
署名・公証の確認方法
アプリが正しく署名・公証されているかを確認する方法はいくつかあります。
署名の確認
# 署名情報の確認
codesign -dv --verbose=4 /path/to/YourApp.app
# 署名の検証
codesign --verify --deep --strict --verbose=2 /path/to/YourApp.app
公証の確認
# 公証チケットの確認
spctl -a -vvv -t install /path/to/YourApp.app
成功した場合の出力例:
/path/to/YourApp.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Your Name (XXXXXXXXXX)
electron-builderの設定例
electron-builder
を使用している場合の設定例:
{
"mac": {
"icon": "build/icon.icns",
"hardenedRuntime": true,
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist",
"gatekeeperAssess": false,
"notarize": true
}
}
まとめ
Electronアプリの署名・公証プロセスは複雑に見えますが、以下のポイントを押さえれば比較的スムーズに進められます:
- Apple Developer IDは必ずXcodeから作成する
- 必要な環境変数を正しく設定する
- 初回公証は時間がかかることを理解して、気長に待つ
- コマンドラインツールを使って進捗を確認する
これらの注意点を理解していれば、多くのトラブルを避けることができます。特に証明書の作成方法は重要で、これを間違えると後々大きな時間のロスにつながります。
皆さんのElectronアプリ開発がスムーズに進むことを願っています!