Add Store MSIX packaging and dark/light theme for 2.9.0.

EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Navis
2026-08-01 14:12:30 +03:00
co-authored by Cursor
parent 93017e2076
commit d42202a1cf
17 changed files with 706 additions and 63 deletions
+82
View File
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Navis MSIX package manifest (Microsoft Store / sideload).
WHY MSIX (not PWA):
Navis is a Win32 + WebView2 desktop VPN/proxy client (system proxy, local cores,
Naive/Hy2/AWG/Xray). A PWA cannot replace those capabilities. Package the existing
GUI binary with Desktop Bridge / full-trust MSIX for Store distribution.
IDENTITY PLACEHOLDERS — replace before Store submission:
Identity/@Name → Partner Center "Package/Identity/Name" (e.g. EvilFox.Navis)
Identity/@Publisher → exact Publisher CN from your Store certificate
(e.g. CN=EvilFox LLC or CN=A1B2C3D4-…)
Identity/@Version → Major.Minor.Build.Revision (all numeric; Revision often 0)
DisplayName / PublisherDisplayName → Store listing names
CAPABILITIES (VPN / proxy client):
internetClient — outbound HTTPS / VPN tunnels
internetClientServer — local listen (SOCKS/HTTP if needed)
privateNetworkClientServer — LAN / private routes
runFullTrust — classic Win32 + WebView2 (restricted capability;
requires Microsoft Store approval for full-trust apps)
Store note: in-app updater is disabled when running as an MSIX package
(GetCurrentPackageFullName). Updates ship only via the Store.
-->
<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"
IgnorableNamespaces="uap rescap">
<Identity
Name="EvilFox.Navis"
Publisher="CN=EvilFox"
Version="2.9.0.1"
ProcessorArchitecture="x64" />
<Properties>
<DisplayName>Navis</DisplayName>
<PublisherDisplayName>EvilFox</PublisherDisplayName>
<Description>Navis — VPN/proxy client (Naive, Hysteria 2, AmneziaWG, Xray)</Description>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
<Resource Language="ru-ru" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.26100.0" />
</Dependencies>
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="internetClientServer" />
<Capability Name="privateNetworkClientServer" />
<rescap:Capability Name="runFullTrust" />
</Capabilities>
<Applications>
<Application
Id="Navis"
Executable="Navis.exe"
EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements
DisplayName="Navis"
Description="Navis VPN client"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile
Wide310x150Logo="Assets\Wide310x150Logo.png"
Square71x71Logo="Assets\Square71x71Logo.png"
Square310x310Logo="Assets\Square310x310Logo.png"
ShortName="Navis" />
<uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#0c1613" />
</uap:VisualElements>
</Application>
</Applications>
</Package>
+45
View File
@@ -0,0 +1,45 @@
# MSIX packaging for Navis (Microsoft Store)
Navis ships as a **full-trust Win32 + WebView2** app. Prefer **MSIX** over a PWA:
system proxy and protocol cores cannot be delivered as a Store PWA alone.
## Prerequisites
1. Build Windows binaries: `build.bat``dist\navis-release\windows\Navis.exe`
2. [Windows SDK](https://developer.microsoft.com/windows/downloads/windows-sdk/) with `MakeAppx.exe` (and `SignTool.exe` for sideload signing)
3. Optional: a code-signing certificate whose **Subject CN** matches `Identity/@Publisher` in `AppxManifest.xml`
## Pack
From the repo root (PowerShell):
```powershell
.\scripts\pack-msix.ps1
```
Options:
```powershell
.\scripts\pack-msix.ps1 -ExePath "dist\navis-release\windows\Navis.exe" -Version "2.9.0.1"
.\scripts\pack-msix.ps1 -Publisher "CN=Your Store Publisher" -Name "EvilFox.Navis"
.\scripts\pack-msix.ps1 -CertPath ".\certs\navis-msix.pfx" -CertPassword "..."
```
Output: `dist\navis-release\windows\Navis_<version>.msix`
## Store submission
1. Create the app in [Partner Center](https://partner.microsoft.com/dashboard).
2. Copy **Package/Identity Name** and **Publisher** into `AppxManifest.xml` (or pass `-Name` / `-Publisher` to the script).
3. Upload the `.msix` (Partner Center can re-sign with the Store cert).
4. Declare **runFullTrust** and network capabilities; answer Store questions about VPN/proxy use.
5. Privacy policy URL required (document system-proxy changes and outbound tunnel traffic).
6. **Do not enable in-app self-update** for Store builds — Navis detects MSIX package identity and hides the updater (Store updates only).
## Sideload test
```powershell
Add-AppxPackage -Path .\dist\navis-release\windows\Navis_2.9.0.1.msix
```
Unsigned packages need a trusted cert or developer mode / sideloading enabled.