mcpField
E
electron-release

electron-release

github.com/laststance開発148 回インストール2 週間前に更新
リポジトリ

electron-release について

Vite と electron-builder を使う Electron 開発者向けの、macOS リリース手順をまとめたスキルです。バージョン更新、公証ビルド、リリースアセットの準備、自動更新メタデータの検証を扱います。

主な機能

  1. 01バージョン更新とリリース手順
  2. 02macOS 公証ビルドのガイド
  3. 03リリースアセットの準備と命名
  4. 04更新メタデータとアセットの確認
  5. 05リリース時の問題の調査

活用シーン

  1. 01Electron の macOS リリース準備
  2. 02公開前の自動更新ファイル検証
  3. 03ファイル名やメタデータの不一致調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laststance/skills --skill electron-release

インストール後、Claude Code で/electron-releaseを入力して読み込まれたか確認します。

詳細

Electron リリースガイド

Codex との互換性

Codex でこのスキルを実行する場合は、操作を開始する前に Claude Code 専用のプリミティブを変換してください。AskUserQuestion -> chat/request_user_input、TodoWrite -> update_plan、Task/TaskCreate/TeamCreate/SendMessage -> 利用可能かつ許可されている場合は spawn_agent/send_input/wait_agent、EnterPlanMode/ExitPlanMode -> 簡潔なチャットでの計画と明示的な承認に置き換えます。 Read/Write/Edit/Bash/WebSearch/WebFetch は Codex のファイル/シェル/ウェブツールに対応付けます。また、タスクで Claude Code が明示的に対象となっていない限り、~/.claude/... のパスは ~/.agents/... または ~/.codex/... に対応付けます。

Cursor との互換性

Cursor Agent でこのスキルを実行する場合は、操作を開始する前に Claude Code 専用のプリミティブを変換してください。AskUserQuestion -> AskQuestion、TodoWrite -> Cursor の TodoWrite または同等のチェックリスト、Task/TaskCreate/TeamCreate/SendMessage/マルチエージェントのフロー -> 許可されている場合は Cursor の Task(サブエージェント)、並列の Task、または run_in_background に置き換えます(TeamCreate/SendMessage に完全に一致する機能がない場合があります)。EnterPlanMode/ExitPlanMode -> Plan モード(SwitchMode / CreatePlan)と明示的なユーザー承認に置き換えます。 Read/Write/Edit/StrReplace/Bash/ウェブ/検索/MCP は、Cursor Composer または Agent の同等機能に対応付けます。mcp__server__tool 形式の MCP 名は通常、設定済みのサーバー識別子を使う call_mcp_tool に対応付けます。タスクで Claude Code が明示的に対象となっていない限り、~/.claude/... は ~/.cursor/skills/、.cursor/skills/、.cursor/rules/ に対応付けます。

自動アップデートに対応した Electron アプリのリリースワークフロー全体です。

自動アップデートの検証範囲

通常のリリースでは、公開されたアセットと latest-mac.yml のメタデータを検証した時点で終了します。このスキルの一環として、古いアプリをインストールまたは起動したり、そのアップデーターを実行したり、アップデートをダウンロードしたり、アップデート後に再起動したり、ShipIt を操作したりしないでください。エンドツーエンドの自動アップデート QA は、ユーザーから明示的に依頼された場合、または報告されたアップデートの失敗を調査するよう求められた場合にのみ実施します。

対応構成

スタックプラットフォームビルドタイプステータス
Vite + electron-buildermacOSローカル✅ ドキュメントあり
その他の構成--📝 追加予定

クイックスタート(macOS + Vite + electron-builder)

# 1. Build with notarization
APPLE_KEYCHAIN_PROFILE=your-profile pnpm build:mac

# 2. Rename ZIPs (GitHub converts spaces to dots)
cp "dist/App Name-X.Y.Z-arm64-mac.zip" "dist/App-Name-X.Y.Z-arm64-mac.zip"
cp "dist/App Name-X.Y.Z-mac.zip" "dist/App-Name-X.Y.Z-mac.zip"

# 3. Create release with ALL files
gh release create vX.Y.Z \
  dist/latest-mac.yml \
  "dist/App-Name-X.Y.Z-arm64-mac.zip" \
  "dist/App-Name-X.Y.Z-mac.zip" \
  dist/app-name-X.Y.Z-arm64.dmg \
  dist/app-name-X.Y.Z-x64.dmg \
  --title "vX.Y.Z" --notes "Release notes..."

ワークフロー全体

フェーズ 1:リリース前
  1. package.json の バージョンを更新
  2. バージョン変更をコミット:
    git add package.json
    git commit -m "chore(release): bump version to X.Y.Z"
    git push origin main
    
フェーズ 2:ビルド
  1. 公証を付けてビルド:

    APPLE_KEYCHAIN_PROFILE=your-profile pnpm build:mac
    
    環境変数用途
    APPLE_KEYCHAIN_PROFILE公証用のキーチェーンプロファイル
    代替:APPLE_ID、APPLE_APP_SPECIFIC_PASSWORD、APPLE_TEAM_ID直接指定する認証情報
  2. ビルド出力を検証:

    ls -la dist/*.dmg dist/*.zip dist/*.yml
    

    想定されるファイル:

    • latest-mac.yml - 自動アップデートのメタデータ
    • App Name-X.Y.Z-arm64-mac.zip - ARM64 アップデート用ペイロード
    • App Name-X.Y.Z-mac.zip - x64 アップデート用ペイロード
    • app-name-X.Y.Z-arm64.dmg - ARM64 インストーラー
    • app-name-X.Y.Z-x64.dmg - x64 インストーラー
フェーズ 3:リリースアセットの準備
  1. ZIP ファイル名を変更(自動アップデートに不可欠):

    # GitHub converts spaces to dots, but latest-mac.yml expects hyphens
    cp "dist/App Name-X.Y.Z-arm64-mac.zip" "dist/App-Name-X.Y.Z-arm64-mac.zip"
    cp "dist/App Name-X.Y.Z-mac.zip" "dist/App-Name-X.Y.Z-mac.zip"
    
  2. latest-mac.yml の URL が変更後のファイル名と一致することを確認:

    cat dist/latest-mac.yml
    # Check that 'url:' entries match your renamed ZIP filenames
    
フェーズ 4:GitHub リリース
  1. 必要なファイルをすべて含めてリリースを作成:

    gh release create vX.Y.Z \
      dist/latest-mac.yml \
      "dist/App-Name-X.Y.Z-arm64-mac.zip" \
      "dist/App-Name-X.Y.Z-mac.zip" \
      dist/app-name-X.Y.Z-arm64.dmg \
      dist/app-name-X.Y.Z-x64.dmg \
      --title "vX.Y.Z" \
      --notes "$(cat <<'EOF'
    ## What's Changed
    - Feature 1
    - Bug fix 2
    EOF
    )"
    
  2. リリースアセットを検証:

    gh release view vX.Y.Z --json assets --jq '.assets[].name'
    

自動アップデートに必要なファイル

ファイル用途ない場合
latest-mac.ymlバージョン + SHA512 ハッシュ「アップデートはありません」
*-arm64-mac.zipARM64 アップデート用ペイロードM1/M2/M3 でダウンロードに失敗
*-mac.zipx64 アップデート用ペイロードIntel でダウンロードに失敗
*.dmg手動ダウンロード手動インストールの選択肢がない

よくある間違い

間違い症状解決方法
DMG のみで ZIP がない自動更新が通知なく失敗するすべての ZIP ファイルをアップロードします
latest-mac.yml がない「利用可能な更新はありません」と表示されるlatest-mac.yml をアップロードします
ZIP のファイル名が間違っているダウンロードエラーlatest-mac.yml の URL に一致する名前に変更します
署名公証用の環境変数がないGatekeeper にアプリがブロックされるAPPLE_KEYCHAIN_PROFILE を設定します
ファイル名にスペースがあるダウンロード時に 404 が発生する名前を変更します:スペース → ハイフン

トラブルシューティング

自動更新時に「ダウンロードエラー」と表示される
# Check if filenames match
cat dist/latest-mac.yml | grep url:
gh release view vX.Y.Z --json assets --jq '.assets[].name'
# URLs in yml must exactly match asset names
「利用可能な更新はありません」と表示される
# Verify latest-mac.yml is uploaded
gh release view vX.Y.Z --json assets --jq '.assets[].name' | grep yml
Gatekeeper にアプリがブロックされる
# Rebuild with notarization
APPLE_KEYCHAIN_PROFILE=your-profile pnpm build:mac
# Check build log for "notarization successful"

electron-builder.yml リファレンス

mac:
  target:
    - target: dmg
      arch: [arm64, x64]
    - target: zip
      arch: [arm64, x64]
  notarize: true
  hardenedRuntime: true

publish:
  provider: github
  owner: your-org
  repo: your-repo

成功基準

  • 「notarization successful」と表示されてビルドが完了する
  • 5 つのファイルすべてが GitHub Release にアップロードされている
  • ZIP ファイル名が latest-mac.yml の URL と完全に一致している

コメント