👏

Electron Macの自動アップデート機能を自己署名で試す

1 min read

ElectronのautoUpdate機能を使うとき、Macは署名が必要になります。

署名をしないと自動アップデートをしてもエラーになります。

Error: Error: Could not get code signature for running application

どうやら有料のApple Developer Programに登録しないといけないみたいです。
(検索上位の記事にはだいたいそう書いてあります)

とはいえ技術検証で手元で試したいだけなのに1万円は払えないですよね・・

ただelectron-builderの実行ログを良く見るとね、or custom non-Apple code signing certificateとあるんですよね・・

skipped macOS application code signing  reason=cannot find valid "Developer ID Application" identity or custom non-Apple code signing certificate, see https://electron.build/code-signing allIdentities=

ということで自己署名で試してみました。

証明書を発行する。

キーチェーン → 証明書アシスタント → 証明書を作成から自己署名証明書を発行する。。

証明書を信頼する必要があります。

securityコマンドで確認します。

$ security find-identity -v -p codesigning
  1) XXXXXXXXXXXXXXXXXX "TEST_SELF_SIGN"
     1 valid identities found

electron-osx-signとかも内部でこのコマンドを実行しています。

署名をする

Electron builderを使っている場合は
CSC_LINKを指定してビルドすると良さそうです。

export CSC_LINK=TEST_SELF_SIGN
$ electron-builder --mac --x64
  • electron-builder  version=22.10.4 os=18.7.0
...
  • signing         file=dist/mac/example.app identityName=TEST_SELF_SIGN identityHash=XXXXXXXXXXXXX provisioningProfile=none

無事に自己署名証明書でも自動アップデートを試すことができました。

https://www.electron.build/code-signing

お片づけ。キーチェンから削除もできるけど、せっかくなのでsecurityコマンドを試す。

(GUIで消すのと変わらないです)

 security delete-identity -c TEST_SELF_SIGN