Публікація десктопних програм в Microsoft Store
Microsoft Store підтримує кілька форматів програм: традиційні Win32/WPF, UWP та упаковані MSIX-програми. Electron та інші фреймворки публікуються через MSIX — це дозволяє потрапити до Store без переписування на WinRT.
Формати публікації
| Формат | Аудиторія | Особливості |
|---|---|---|
| MSIX (упакований Win32) | Усі Windows 10/11 | Повний доступ до Win32 API |
| UWP | Лише версії Store | Sandbox, обмежений доступ до файлової системи |
| PWA | Через Edge/Store | Лише веб-програми |
Створення MSIX з Electron-програми
electron-builder може створювати MSIX безпосередньо:
# electron-builder.yml
win:
target:
- target: nsis
- target: msix
icon: build/icon.ico
msix:
applicationId: com.company.AppName
backgroundColor: "#transparent"
displayName: "App Name"
publisherDisplayName: "Company Name"
identityName: "CompanyName.AppName"
npx electron-builder --win msix
Для публікації у Store потрібен сертифікат від Trusted CA (DigiCert, GlobalSign) або сертифікат з Partner Center. Самопідписаний сертифікат не підійде.
Реєстрація в Partner Center
- Зареєструвати обліковий запис розробника — $19 одноразово (фізична особа) або $99 (компанія)
- Створити нову програму: Partner Center → Apps → New product
- Зарезервувати ім'я програми
- Заповнити метадані: опис, скриншоти (мінімум 3, розширення від 1366×768), категорія, вікова оцінка
Вимоги до пакета
# Перевірка пакета перед завантаженням
# Windows App Certification Kit (WACK)
& "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe" `
test -apppackagepath .\AppName.msix -reportoutputpath .\report.xml
# Або через PowerShell
Get-AppxPackage -Name "CompanyName.AppName"
WACK перевіряє: наявність дійсного маніфесту, відсутність заборонених API, коректність іконок (обов'язкові розміри 44×44, 150×150, 310×310 у PNG).
AppxManifest.xml
electron-builder генерує маніфест автоматично, але іноді потрібні ручні правки:
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
<Identity Name="CompanyName.AppName"
Publisher="CN=Company Name, O=Company Name, C=US"
Version="1.0.0.0" />
<Properties>
<DisplayName>App Name</DisplayName>
<PublisherDisplayName>Company Name</PublisherDisplayName>
<Logo>assets\StoreLogo.png</Logo>
</Properties>
<Capabilities>
<rescap:Capability Name="runFullTrust" /> <!-- Для Win32 програм -->
<Capability Name="internetClient" />
</Capabilities>
<Applications>
<Application Id="App" Executable="AppName.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements DisplayName="App Name"
Description="App description"
BackgroundColor="transparent"
Square150x150Logo="assets\Square150x150Logo.png"
Square44x44Logo="assets\Square44x44Logo.png">
</uap:VisualElements>
</Application>
</Applications>
</Package>
GitHub Actions для автоматичної публікації
- name: Build MSIX
run: npx electron-builder --win msix
env:
CSC_LINK: ${{ secrets.WIN_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PWD }}
- name: Upload to Partner Center
uses: microsoft/store-submission-action@v1
with:
seller-id: ${{ secrets.MS_SELLER_ID }}
product-id: ${{ secrets.MS_PRODUCT_ID }}
package-path: dist/AppName.msix
tenant-id: ${{ secrets.MS_TENANT_ID }}
client-id: ${{ secrets.MS_CLIENT_ID }}
client-secret: ${{ secrets.MS_CLIENT_SECRET }}
Публікація проходить модерацію Microsoft (зазвичай 1–3 робочих дні). Оновлення проходять швидше, ніж перша публікація.
Тривалість
Підготовка MSIX, проходження WACK та перша публікація в Microsoft Store: 3–5 робочих днів.







