ニュース

Microsoft、「Windows App Development CLI」(winapp)を発表

「Microsoft Store」へアプリを提出するために必要なものをワンコマンドに

Microsoft、「Windows App Development CLI」(winapp)を発表

 米Microsoftは1月22日(現地時間)、「Windows App Development CLI」(winapp)を発表した。「GitHub」でホストされているオープンソースプロジェクトで、ライセンスは「MIT」。「WinGet」や「npm」からも入手できる。

 Windowsアプリを公開する方法はいくつかあるが、MicrosoftはMSIX形式でアプリをパッケージングし、「Microsoft Store」に登録することを推奨している。そのためにはマニフェストを作成し、アイコンなどのアセット(素材)を用意し、デジタル署名を行う必要があるが、「Visual Studio」や「MSBuild」などを使っているのであればそれほど難しくはない。たとえば、「Visual Studio」ならばウィザードに従って手順を踏めば、そのまま「Microsoft Store」へ提出できる。

 しかし、近年は「Rust」や「Dart」「Flutter」、「Electron」でWindowsアプリを構築する例も増えている。こうした「Visual Studio」や「MSBuild」を使わない開発スタイルでは、これまでパッケージングに関する標準的な方法が確立されておらず、Windowsアプリを「Microsoft Store」に登録する作業は複雑で、つまずきやすいポイントが多い。

 そうした問題を解決するために用意されたのが、今回発表された「winapp」コマンドだ。このツールを利用すれば、以下の作業が簡単に行える。


    winapp init:プロジェクトの初期化。マニフェストやアセットの作成、証明書生成、依存関係の管理などがワンコマンドで
    winapp create-debug-identity:最近のWindows APIで要求されるパッケージID(Package Identity)を生成。最新のAPIが利用できるように
    winapp manifest update-assets:マニフェストから参照されているすべての画像アセットを正しいアスペクト比に更新
    winapp cert create:サイドロードやテストのための自己署名を生成
    winapp pack:MSIXとしてパッケージ化。既存のアプリ(EXE/MSI)をパッケージすることもできるようだ
画像アセットの準備も簡単

 さらに「Electron」向けには特別なサポートがあり、C++/C#ネイティブアドオンをスキャフォールディングして「Windows App SDK」や「Windows SDK」へアクセスできるように事前設定したり、デバッグを容易にするためにパッケージIDを「Electron」プロセスに注入したりといったことが行える。つまり、最新のWindows機能やローカルAI機能なども簡単に扱えるようになる。