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 패키지를 생성하는 두 가지 방법, 즉 수동 파일 복사 작업을 사용하거나 Windows 컨테이너를 사용하는 방법을 지원합니다. 첫 번째 옵션에는 Windows 10 SDK만 필요하고, 두 번째 옵션에는 Desktop App Converter도 필요합니다.
Electron-Windows-Store CLI를 실행하기 전에 모든 필수 구성 요소가 갖추어져 있는지 확인하십시오. 다음이 필요합니다.
node -v
실행) Electron-Packer(또는 이와 유사한 것)를 사용하여 애플리케이션을 패키징합니다. 최종 애플리케이션에 필요하지 않은 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 옵션에 해당하며 동일하게 선택 사항입니다. 한 가지 예외가 있습니다. makeappx.exe
가 호출되기 직전에 실행되는 finalSay
함수를 제공할 수 있습니다. 이를 통해 출력 폴더를 패키지로 전환하기 직전에 수정할 수 있습니다.
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 ( ) )
}
} )
Desktop App Converter는 Windows 컨테이너 내에서 변환하는 동안 설치 프로그램과 앱을 실행할 수 있습니다. 이를 위해서는 Desktop App Converter를 설치해야 하며 더 많은 고급 요구 사항이 있습니다.
appx
만들어야 한다는 사실을 모르는 경우 위에 설명된 "파일 복사" 방법을 사용하세요.
컴퓨터가 컨테이너를 실행할 수 있는지 확인하세요. 64비트(x64) 프로세서, 하드웨어 지원 가상화 및 SLAT(두 번째 수준 주소 변환)가 필요합니다. Windows 10 Enterprise Edition도 필요합니다.
CLI를 처음 실행하기 전에 "Windows Desktop App Converter"를 설정해야 합니다. 이 작업은 몇 분 정도 소요되지만 걱정하지 마세요. 이 작업은 한 번만 수행하면 됩니다. 여기에서 Desktop App Converter를 다운로드하세요. DesktopAppConverter.zip
및 BaseImage-14316.wim
이라는 두 개의 파일을 받게 됩니다.
DesktopAppConverter.zip
의 압축을 풉니다. 관리자 권한 PowerShell("관리자 권한으로 실행"으로 열림)에서 시스템 실행 정책이 Set-ExecutionPolicy bypass
호출하여 실행하려는 모든 항목을 실행할 수 있도록 허용하는지 확인하세요..DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
호출하여 Windows .ase 이미지( BaseImage-14316.wim
으로 다운로드됨) 위치를 전달하여 Desktop App Converter 설치를 실행합니다. 그런 다음 --container-virtualization
플래그를 사용하여 electron-windows-store
실행하세요!
일단 실행되면 도구가 작동합니다. Electron 앱을 입력으로 받아들입니다. 그런 다음 애플리케이션을 app.zip
으로 보관합니다. 이 도구는 설치 프로그램과 Windows 컨테이너를 사용하여 Windows 애플리케이션 매니페스트( AppXManifest.xml
)는 물론 가상 파일 시스템과 출력 폴더 내의 가상 레지스트리를 포함하는 "확장된" AppX 패키지를 생성합니다.
확장된 AppX 파일이 있으면 도구는 Windows App Packager( MakeAppx.exe
)를 사용하여 디스크의 해당 파일에서 단일 파일 AppX 패키지를 만듭니다. 마지막으로 이 도구를 사용하면 컴퓨터에 신뢰할 수 있는 인증서를 생성하여 새 AppX 패키지에 서명할 수 있습니다. 서명된 AppX 패키지를 사용하면 CLI가 시스템에 패키지를 자동으로 설치할 수도 있습니다.
이 도구를 처음 실행하는 경우 몇 가지 설정을 알아야 합니다. 한 번만 질문하고 답변을 프로필 폴더의 .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
Semantic Release를 사용하여 전체 릴리스 프로세스를 자동화합니다. PR을 병합하려면 로봇이 변경 사항을 이해할 수 있도록 PR이 커밋 지침을 따르는지 확인하십시오. 이 저장소는 기본 conventional-changelog
규칙을 사용합니다.
MIT(MIT) 라이센스를 사용하여 라이센스가 부여되었습니다. 저작권 (c) Felix Rieseberg 및 Microsoft Corporation. 자세한 내용은 라이센스를 참조하세요.