Electronを使用したmacOSアプリの署名・公証の注意点

ElectronでmacOSアプリを配布する際の署名・公証プロセスでつまずいたポイントと解決策をまとめました

投稿日: 2025年5月25日
Electronを使用したmacOSアプリの署名・公証の注意点

参考記事: Electronアプリのリリースまでの手順(署名、公証など)

Electronを使ってmacOSアプリケーションを開発・配布する際、Apple Developer IDによる署名と公証は避けて通れない重要なステップです。しかし、ウェブ上の情報は古かったり曖昧だったりすることが多く、実際に作業を進めると様々な落とし穴があります。

この記事では、私が実際にElectronアプリの署名・公証を行った際につまずいたポイントと、その解決策を共有します。なお、本記事はelectron-builderを使用したビルドプロセスを前提としています。

Apple Developer IDの作成について

重要:Xcodeから作成すること

Apple Developer IDを作成する際の最も重要なポイントは、必ずXcodeから行うということです。

私の失敗談:

  • 最初、Apple Developerのウェブサイトから証明書を作成しました
  • Keychainへの登録も手動で行い、一見問題なさそうに見えました
  • しかし、実際にビルド時に署名しようとすると、様々なエラーが発生しました

Xcodeでの作成手順

  1. Xcodeを開く
  2. メニューから「Xcode」→「Settings」→「Accounts」を選択
  3. Apple IDでサインイン
  4. 「Manage Certificates」をクリック
  5. 「+」ボタンから「Developer ID Application」を選択

この方法で作成すると、証明書が自動的にKeychainに正しく登録され、ビルド時に自動で参照されます。

ビルド時の環境変数について

必要な環境変数

Electronアプリの署名・公証を行うには、以下の環境変数を設定する必要があります:

HLJS BASH
# Apple Developerに登録したメールアドレス
export APPLE_ID="your-email@example.com"

# アプリ用のパスワード
export APPLE_APP_SPECIFIC_PASSWORD="xxxx-xxxx-xxxx-xxxx"

# チームID
export APPLE_TEAM_ID="XXXXXXXXXX"

アプリ用パスワードの取得方法

  1. Apple IDアカウント管理ページにアクセス
  2. 「サインインとセキュリティ」→「アプリ用パスワード」を選択
  3. 新しいアプリ用パスワードを生成

チームIDの確認方法

Apple Developerにアクセスして、右上のメンバーシップの詳細で確認できます。

不要な環境変数

Xcodeで証明書を作成した場合、以下の環境変数は不要です:

  • CSC_LINK
  • CSC_KEY_PASSWORD

これらは手動で証明書を管理する場合に必要ですが、Xcodeで作成した場合は自動的に処理されます。

公証プロセスについて

初回公証は時間がかかる

初めてアプリを公証する際は、かなりの時間がかかることがあります。気長に待ちましょう。

公証の進捗確認

公証の状態を確認するには、以下のコマンドを使用します:

HLJS BASH
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

署名・公証の確認方法

アプリが正しく署名・公証されているかを確認する方法はいくつかあります。

署名の確認

HLJS BASH
# 署名情報の確認
codesign -dv --verbose=4 /path/to/YourApp.app

# 署名の検証
codesign --verify --deep --strict --verbose=2 /path/to/YourApp.app

公証の確認

HLJS BASH
# 公証チケットの確認
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を使用している場合の設定例:

HLJS JSON
{
  "mac": {
    "icon": "build/icon.icns",
    "hardenedRuntime": true,
    "entitlements": "build/entitlements.mac.plist",
    "entitlementsInherit": "build/entitlements.mac.plist",
    "gatekeeperAssess": false,
    "notarize": true
  }
}

まとめ

Electronアプリの署名・公証プロセスは複雑に見えますが、以下のポイントを押さえれば比較的スムーズに進められます:

  1. Apple Developer IDは必ずXcodeから作成する
  2. 必要な環境変数を正しく設定する
  3. 初回公証は時間がかかることを理解して、気長に待つ
  4. コマンドラインツールを使って進捗を確認する

これらの注意点を理解していれば、多くのトラブルを避けることができます。特に証明書の作成方法は重要で、これを間違えると後々大きな時間のロスにつながります。

皆さんのElectronアプリ開発がスムーズに進むことを願っています!