Skip to main content

windeployqt を使用した Windows Store への展開

コメント

このブログは「Windows Store Deployment with windeployqt」を翻訳したものです。

マイクロソフトは、ソフトウェアのダウンロードや更新を行う中心的な場所として、Windows 8 とともに Windows Store を導入しました。ソフトウェアを Microsoft Store に掲載するには、開発者はそのソフトウェアにデジタル署名を行う必要があります。マイクロソフトは、ソフトウェアが Microsoft Store に公開される前に、そのソフトウェアを確認します。AppxManifest.xmlは、Microsoft Store向けのパッケージ情報を記述します。makeappxツールはappxインストーラーを作成し、これはWindows SDKに含まれるsigntoolによって署名されます。Qt 6.11では、windeployqtAppxManifest.xmlを作成するための追加のコマンドライン引数が追加されました。具体的には、--appxおよび--appx-certificateという引数です。

サンプルアプリケーションのデプロイ

このブログ記事では、<QtInstallDir>\Examples\Qt-6.10.0\widgets\painting\affineにある「Affine Transformations」のサンプルを使用して、自己署名付きAppxインストーラーを作成します。このチュートリアルは、自己署名証明書の作成、必要なデプロイメントフォルダ構造の作成、windeployqtを使用してAppxManifest.xmlファイルを生成する手順、そして最後に自己署名付きAppxインストーラの作成というステップに分かれています。このチュートリアルを行うには、Windows SDKがインストールされている必要があります。

 

自己署名証明書の作成

テストやデバッグを行うために、開発マシン上で自己署名証明書を作成しておくと便利です。これは、Windows SDKに含まれるmakecertおよびpvk2pfxツールを使用して行います。自己署名証明書は、次のように作成します。

makecert -r -pe -n "CN=example-company.org" -a sha256 -e 01/01/2030 -sky exchange -sv affine_TemporaryKey.pvk affine_TemporaryKey.cer

その後、以下の内容でプライベート情報交換(.pfx)ファイルを作成します

pvk2pfx -pvk affine_TemporaryKey.pvk -spc affine_TemporaryKey.cer -pfx affine_TemporaryKey.pfx

最後に、自己署名証明書を TrustedPeople グループに追加する必要があります。

certutil -addStore TrustedPeople affine_TemporaryKey.cer

それによって、その署名で署名されたパッケージをインストールできるようになります。

 

デプロイ用フォルダ構造の作成

このチュートリアルのデプロイメント・プロジェクトは、3つのディレクトリで構成されています。

  • files: appxにバンドルされるファイルが含まれています

  • keys: 自己署名証明書が含まれています

  • package: appxファイルはこのフォルダ内に作成されます

Screenshot 2025-10-08 144742

「files」ディレクトリには、デプロイする実行ファイルと、アプリの説明やロゴなど、Appx Installer パッケージ用の追加ファイルが含まれる「Asset」フォルダが含まれています。affine.exe をこのフォルダ内にコピーすると、「files」フォルダの内容は次のようになります。

Screenshot 2025-10-08 145936

Assetsフォルダ内には、affine.exeのインストーラー説明用のDescription_affine.txt、アプリケーションのロゴ用としてLogo.pngおよびSmallLogo.png、ストアのロゴ用としてStoreLogo.pngがあります。これらのファイルはすべて、windeployqtによるAppxManifest.xmlの作成に必要です。Assetsフォルダ内のファイルは以下の通りです。

Screenshot 2025-10-08 150443

Appxの作成

windeployqt を使用して初期の AppxManifest.xml を作成するには、次のコマンドを実行してください:

windeployqt.exe --appx --appx-certificate C:\deploymen
tTest\keys\affine_TemporaryKey.cer C:\deploymentTest\files\

ここで、--appxwindeployqt に Appx を生成するよう指示し、--appx-certificatewindeployqt に、最終的な Appxパッケージの署名に使用する証明書を指定します。最後のパスは、.appxファイルにパッケージ化するファイルが含まれているフォルダーを指します。署名なしの Appxファイルを作成するには、以下を実行してください:

makeappx pack /d C:\deploymentTest\files\ /p C:\deploymentTest\package\package.appx

これにより、先に作成した AppxManifest.xml が解析され、C:\deploymentTest\files\フォルダ内のすべてのファイルが組み込まれます。最後に、.appxファイルに自己署名証明書で署名する必要があります。これを行うには、以下のコマンドを実行します。

signtool.exe sign /a /v /fd SHA256 /f C:\deploymentTest\keys\affine_TemporaryKey.pfx C:\deploymentTest\package\package.appx

実際のストアにデプロイするには、自己署名証明書を有効なコード署名証明書に置き換える必要があります。

トピック

コメント

ブログを購読

Qt 6.10 を今すぐ試そう!

最新リリースはこちらからダウンロードできます。 www.qt.io/download

 Qt 6.10 がリリースされました!アプリケーション開発者やデバイス開発者向けに、多くの新機能と改善が追加されています。 

採用情報 

現在、さまざまなポジションで採用を行っています。募集職種はこちら をご覧ください。また、Instagram をフォローして #QtPeople の働き方もぜひチェックしてください。