Windows Storeへアップロードするmsixbundleファイルの作り方

IT

モグラ先生:あれれ?今日は地中から飛び出して、Windows Storeにアプリを公開するためのmsixbundle作成だよ!🐾


今回掘るテーマ

昔ながらのコマンドだけじゃなく、最新のWindows SDKとPowerShellを使って、msixbundleファイルを一気にまとめて作っちゃおう!
モグラ先生が楽しくガイドするから、一緒に掘って見つけた!感覚でやってみよう!⛏️


前提:必要なツールと環境準備🐾

  • Windows 10/11 SDK(「Windows App Certification Kit」コンポーネントを含む)をインストール
    Windows App Certification Kit を選べば、MakeAppx.exe と SignTool.exe が手に入るよ :contentReference[oaicite:0]{index=0}。
  • PowerShell 5.1 以降(管理者権限で起動できること)
  • 開発者モードを有効化(設定 → 更新とセキュリティ → for developers)
  • AppxManifest.xml で指定した Publisher(CN=…) を確認

モグラ先生:「ここはしっかり揃えておかないと、あとで落とし穴が待ってるよ🪹」


1. Windows SDK をインストールしよう⛏️

  1. Microsoftの公式サイトから 最新の Windows SDK をダウンロード
    https://developer.microsoft.com/windows/downloads/windows-sdk/
  2. インストーラーで Windows App Certification Kit を選択して進める
    これで MakeAppx.exe と SignTool.exe が C:\Program Files (x86)\Windows Kits\10\App Certification Kit\ 配下に入る :contentReference[oaicite:1]{index=1}。

2. バンドル用フォルダを用意しよう🐾

  • プロジェクト直下にフォルダを作成(例:C:\FlatBundle
  • そこに 各アーキテクチャ用の .msix ファイルを配置(例:MyApp-x86.msixMyApp-x64.msixMyApp-ARM.msix

モグラ先生:「フォルダ内にはmsixファイルだけを入れるのがコツ!他のファイルが混ざるとエラーになるよ🐾」 :contentReference[oaicite:2]{index=2}


3. MakeAppx.exe でバンドルを作成⛏️

# フルバンドルを作成(ペイロードを埋め込む)
"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\MakeAppx.exe" bundle /d C:\FlatBundle /p C:\FlatBundle\MyApp.msixbundle

`

  • /d:コンテンツディレクトリ
  • /p:出力バンドル名

小さな穴掘りポイント

モグラ先生:ペイロードを埋め込まない「フラットバンドル」を作りたいときは、/fb オプションを追加してみよう!🪹 ([GitHub][1])

モグラ先生:「MakeAppx.exe は Windows SDK に含まれていて、アプリパッケージとバンドル作成に使えるよ」 ([Microsoft Learn][2])


4. 証明書を作成しよう🪹

AppxManifest.xml の Publisher と同じ Subject を持つ証明書が必要 ([Microsoft Learn][3])。
管理者権限の PowerShell で次を実行:

New-SelfSignedCertificate `
  -Type Custom `
  -KeyUsage DigitalSignature `
  -CertStoreLocation "Cert:\CurrentUser\My" `
  -TextExtension @(
    "2.5.29.37={text}1.3.6.1.5.5.7.3.3",  # Code Signing EKU
    "2.5.29.19={text}"                     # End entity
  ) `
  -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" `
  -FriendlyName "MyApp Signing Certificate"

小さな穴掘りポイント

モグラ先生:Subject は必ずマニフェストの Publisher と完全一致させてね!


5. 証明書を PFX にエクスポートしよう🐾

PowerShell で以下を実行:

# パスワードを作成
$password = ConvertTo-SecureString -String "YourStrongPassword" -Force -AsPlainText

# 証明書を PFX ファイルへエクスポート
Export-PfxCertificate `
  -Cert "Cert:\CurrentUser\My\<証明書のThumbprint>" `
  -FilePath "C:\FlatBundle\App_TemporaryKey.pfx" `
  -Password $password

モグラ先生:<証明書のThumbprint>Get-ChildItem Cert:\CurrentUser\My で確認しよう!


6. SignTool.exe で msixbundle を署名しよう⛏️

タイムスタンプも付けて長期有効化! ([Microsoft Learn][4], [Microsoft Learn][5])

"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\SignTool.exe" sign `
  /fd SHA256 `
  /a `
  /f C:\FlatBundle\App_TemporaryKey.pfx `
  /p YourStrongPassword `
  /tr http://timestamp.digicert.com `
  /td SHA256 `
  C:\FlatBundle\MyApp.msixbundle
  • /fd SHA256:ハッシュアルゴリズム
  • /a:最適な証明書を自動選択
  • /tr:タイムスタンプサーバー URL
  • /td SHA256:タイムスタンプのハッシュ
  • /f /p:PFX とパスワード指定

小さな穴掘りポイント

モグラ先生:タイムスタンプを入れると、証明書期限切れ後もインストールできるから、忘れず使おう!⏰


まとめ:これで公開準備完了!

  1. 必要なツール(Windows SDK/PowerShell)の確認
  2. フォルダに msix ファイルをまとめる
  3. MakeAppx.exe でバンドル作成
  4. PowerShell で証明書作成・PFX エクスポート
  5. SignTool.exe で署名&タイムスタンプ付与

モグラ先生:ここまで来れば、MyApp.msixbundleWindows Store にポチッとアップロードできるよ🐾
さあ、公開に向けて掘り進めよう!


Happy digging, もぐTech編集部

タイトルとURLをコピーしました