Electron-Windows-Store: Electron アプリのパッケージ化された出力を取得し、それを AppX パッケージに変換する CLI。これにより、Electron アプリを Windows ストアに送信できるようになります。 Windows ストアを使用せずにアプリを.appx
として配布することもでき、ユーザーは.appx
ダブルクリックするだけで自動的にインストールできます。
このコマンド ライン ツールをインストールするには、npm から直接入手します。
npm install -g electron-windows-store
次に、PowerShell を構成します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Electron アプリを AppX パッケージに変換するには、次のコマンドを実行します。
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
このツールは、AppX パッケージを作成する 2 つの方法をサポートしています。手動のファイル コピー操作を使用する方法と、Windows コンテナーを使用する方法です。最初のオプションでは Windows 10 SDK のみが必要ですが、2 番目のオプションではデスクトップ アプリ コンバーターも必要です。
Electron-Windows-Store CLI を実行する前に、すべての前提条件が満たされていることを確認してください。必要なものは次のとおりです。
node -v
を実行します) Electron-packager (または類似のもの) を使用してアプリケーションをパッケージ化します。最終的なアプリケーションで不要なnode_modulesを必ず削除してください。
出力はおおよそ次のようになります。
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
管理者特権の PowerShell (「管理者として」実行) から、入力ディレクトリと出力ディレクトリの両方、アプリの名前とバージョンを渡し、必要なパラメーターを指定してelectron-windows-store
実行します。これらのパラメータを渡さない場合は、単にパラメータの入力を求められます。
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
これらはすべて CLI のオプションです。
-h, --help output usage information
-V, --version output the version number
-c, --container-virtualization Create package using Windows Container virtualization
-b, --windows-build Display Windows Build information
-i, --input-directory <path> Directory containing your application
-o, --output-directory <path> Output directory for the appx
-p, --package-version <version> Version of the app package
-n, --package-name <name> Name of the app package
--package-display-name <displayName> Display name of the package
--package-description <description> Description of the package
--package-background-color <color> Background color for the app icon (example: #464646)
-e, --package-executable <executablePath> Path to the package executable
-a, --assets <assetsPath> Path to the visual assets for the appx
-m, --manifest <manifestPath> Path to a manifest, if you want to be overwritten
-d, --deploy <true|false> Should the app be deployed after creation?
--identity-name <name> Name for identity
--publisher <publisher> Publisher to use (example: CN=developmentca)
--publisher-display-name <publisherDisplayName> Publisher display name to use
--make-pri <true|false> Use makepri.exe (you don't need to unless you know you do)
--windows-kit <windows-kit> Path to the Windows Kit bin folder
--dev-cert <dev-cert> Path to the developer certificate to use
--cert-pass <cert-pass> Password to use when signing the application (only necessary if a p12 certication is used)
--desktop-converter <desktop-converter> Path to the desktop converter tools
--expanded-base-image <base-image> Path to the expanded base image
--makeappx-params <params> Additional parameters for Make-AppXPackage (example: --makeappx-params "/l","/d")
--signtool-params <params> Additional parameters for signtool.exe (example: --makeappx-params "/l","/d")
--create-config-params <params> Additional parameters for makepri.exe "createconfig" (example: --create-config-params "/l","/d")')
--create-pri-params <params> Additional parameters for makepri.exe "new" (example: --create-pri-params "/l","/d")')
--verbose <true|false> Enable debugging (similar to setting a DEBUG=electron-windows-store environment variable)
このパッケージを直接呼び出すことができます。すべてのオプションは CLI オプションに対応しており、同様にオプションです。例外が 1 つあります。finalSay finalSay
を指定できます。この関数は、 makeappx.exe
が呼び出される直前に実行されます。これにより、出力フォルダーをパッケージに変換する直前に変更できます。
const convertToWindowsStore = require ( 'electron-windows-store' )
convertToWindowsStore ( {
containerVirtualization : false ,
inputDirectory : 'C:\input\' ,
outputDirectory : 'C:\output\' ,
packageVersion : '1.0.0.0' ,
packageName : 'Ghost' ,
packageDisplayName : 'Ghost Desktop' ,
packageDescription : 'Ghost for Desktops' ,
packageExecutable : 'app/Ghost.exe' ,
assets : 'C:\assets\' ,
manifest : 'C:\AppXManifest.xml' ,
deploy : false ,
publisher : 'CN=developmentca' ,
windowsKit : 'C:\windowskit' ,
devCert : 'C:\devcert.pfx' ,
certPass : 'abcd' ,
desktopConverter : 'C:\desktop-converter-tools' ,
expandedBaseImage : 'C:\base-image.wim' ,
makeappxParams : [ '/l' ] ,
signtoolParams : [ '/p' ] ,
makePri : true ,
createConfigParams : [ '/a' ] ,
createPriParams : [ '/b' ] ,
protocol : "ghost-app" ,
finalSay : function ( ) {
return new Promise ( ( resolve , reject ) => resolve ( ) )
}
} )
デスクトップ アプリ コンバーターは、Windows コンテナー内で変換中にインストーラーとアプリを実行できます。これには、Desktop App Converter のインストールが必要であり、より高度な要件があります。
appx
作成する必要があることがわかっていない限り、上記の「ファイル コピー」方法を使用してください。
コンピューターがコンテナーを実行できることを確認します。64 ビット (x64) プロセッサー、ハードウェア支援仮想化、および第 2 レベルのアドレス変換 (SLAT) が必要です。 Windows 10 Enterprise Edition も必要です。
CLI を初めて実行する前に、「Windows デスクトップ アプリ コンバータ」をセットアップする必要があります。これには数分かかりますが、心配する必要はありません。これを行う必要があるのは 1 回だけです。ここからデスクトップ アプリ コンバーターをダウンロードします。 DesktopAppConverter.zip
とBaseImage-14316.wim
の 2 つのファイルを受け取ります。
DesktopAppConverter.zip
を解凍します。管理者特権の PowerShell (「管理者として実行」で開きます。) から、 Set-ExecutionPolicy bypass
を呼び出して、システム実行ポリシーにより、実行する予定のすべての実行が許可されていることを確認します。.DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
を呼び出して、Windows .ase イメージ ( BaseImage-14316.wim
としてダウンロード) の場所を渡して、デスクトップ アプリ コンバーターのインストールを実行します。次に、 --container-virtualization
フラグを指定してelectron-windows-store
実行します。
実行すると、ツールが機能し始めます。Electron アプリを入力として受け入れます。次に、アプリケーションをapp.zip
としてアーカイブします。このツールは、インストーラーと Windows コンテナーを使用して、Windows アプリケーション マニフェスト ( AppXManifest.xml
)、仮想ファイル システム、出力フォルダー内の仮想レジストリを含む「拡張された」AppX パッケージを作成します。
展開された AppX ファイルを取得すると、ツールは Windows アプリ パッケージャー ( MakeAppx.exe
) を使用して、ディスク上のこれらのファイルから単一ファイルの AppX パッケージを作成します。最後に、このツールを使用してコンピュータ上に信頼できる証明書を作成し、新しい AppX パッケージに署名できます。署名された AppX パッケージを使用すると、CLI はマシンにパッケージを自動的にインストールすることもできます。
このツールを初めて実行するときは、いくつかの設定を認識する必要があります。質問は 1 回だけ行われ、回答は.electron-windows-store
ファイル内のプロファイル フォルダーに保存されます。 CLI の実行時にこれらの値をパラメータとして指定することもできます。
{
"publisher" : " CN=developmentca " ,
"windowsKit" : " C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 " ,
"devCert" : " C: \ Tools \ DesktopConverter \ Certs \ devcert.pfx " ,
"desktopConverter" : " C: \ Tools \ DesktopConverter " ,
"expandedBaseImage" : " C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 \ "
}
Electron アプリを目に見えない小さな UWP サイドキックと組み合わせて、Electron アプリがすべての WinRT API を呼び出せるようにすることができます。ここの例を確認してください。
コンパイルされた AppX パッケージには win32 実行可能ファイルがまだ含まれているため、Xbox、HoloLens、または電話では実行されません。
electron-windows-store
セマンティック リリースを使用してリリース プロセス全体を自動化します。 PR をマージするには、ロボットが変更を理解できるように、PR がコミット ガイドラインに従っていることを確認してください。このリポジトリは、デフォルトの従来conventional-changelog
ルールを使用します。
MIT ライセンス (MIT) を使用してライセンスされています。著作権 (c) Felix Rieseberg および Microsoft Corporation。詳細については、「ライセンス」を参照してください。