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:
@@ -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>
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user