From 944a8d89f55ec35b573a8ce702c6f67a9143c017 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Thu, 30 Jul 2026 20:03:04 +0200 Subject: [PATCH] feat(windows): package for the Microsoft Store as an MSIX bundle The Store's unpackaged EXE path would require Authenticode-signing the installer and every PE file inside it. MSIX submissions are re-signed by the Store instead, so this route needs no code-signing certificate. build-msix.ps1 mirrors build-installer.ps1 and consumes the same per-architecture build artifacts, leaving the installer, portable archives and WinSparkle appcast untouched. One template generates the manifest for both architectures, carrying the identity reserved in Partner Center. check_windows_msix.py recomputes the package family name from the publisher DN, so a mistyped identity fails CI rather than a submission, and it parses the script rather than running it because root CI is Linux. Qualified logo assets are indexed into resources.pri; without the altform-unplated variants the shell draws the taskbar icon on an accent-coloured plate. PlatformDetector.isPackagedInstall gates the in-app updater and the Liberapay tile, which the read-only package directory and Store commerce policy respectively rule out. Gating at runtime keeps one Windows build feeding both the installer and the Store package. --- .github/workflows/build.yml | 15 + .gitignore | 5 + lib/screens/settings/settings_screen.dart | 2 +- lib/services/donation_service.dart | 8 +- lib/services/update_service.dart | 12 +- lib/utils/platform_detector.dart | 24 ++ scripts/check_windows_msix.py | 389 ++++++++++++++++++ scripts/ci_guard_checks.sh | 3 +- scripts/generate_windows_msix_assets.ps1 | 88 ++++ scripts/test_check_windows_msix.py | 204 +++++++++ .../settings/settings_screen_test.dart | 4 +- test/utils/platform_detector_test.dart | 35 ++ windows/build-msix.ps1 | 268 ++++++++++++ windows/msix/assets/SplashScreen.png | Bin 0 -> 25250 bytes windows/msix/assets/Square150x150Logo.png | Bin 0 -> 10386 bytes .../assets/Square150x150Logo.scale-200.png | Bin 0 -> 23138 bytes windows/msix/assets/Square310x310Logo.png | Bin 0 -> 24672 bytes windows/msix/assets/Square44x44Logo.png | Bin 0 -> 2750 bytes .../msix/assets/Square44x44Logo.scale-200.png | Bin 0 -> 5571 bytes .../assets/Square44x44Logo.targetsize-16.png | Bin 0 -> 817 bytes ...go.targetsize-16_altform-lightunplated.png | Bin 0 -> 817 bytes ...x44Logo.targetsize-16_altform-unplated.png | Bin 0 -> 817 bytes .../assets/Square44x44Logo.targetsize-24.png | Bin 0 -> 1294 bytes ...go.targetsize-24_altform-lightunplated.png | Bin 0 -> 1294 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1294 bytes .../assets/Square44x44Logo.targetsize-256.png | Bin 0 -> 21276 bytes ...o.targetsize-256_altform-lightunplated.png | Bin 0 -> 21276 bytes ...44Logo.targetsize-256_altform-unplated.png | Bin 0 -> 21276 bytes .../assets/Square44x44Logo.targetsize-32.png | Bin 0 -> 1851 bytes ...go.targetsize-32_altform-lightunplated.png | Bin 0 -> 1851 bytes ...x44Logo.targetsize-32_altform-unplated.png | Bin 0 -> 1851 bytes .../assets/Square44x44Logo.targetsize-48.png | Bin 0 -> 2936 bytes ...go.targetsize-48_altform-lightunplated.png | Bin 0 -> 2936 bytes ...x44Logo.targetsize-48_altform-unplated.png | Bin 0 -> 2936 bytes windows/msix/assets/StoreLogo.png | Bin 0 -> 3105 bytes windows/msix/assets/Wide310x150Logo.png | Bin 0 -> 11156 bytes 36 files changed, 1050 insertions(+), 7 deletions(-) create mode 100644 scripts/check_windows_msix.py create mode 100644 scripts/generate_windows_msix_assets.ps1 create mode 100644 scripts/test_check_windows_msix.py create mode 100644 windows/build-msix.ps1 create mode 100644 windows/msix/assets/SplashScreen.png create mode 100644 windows/msix/assets/Square150x150Logo.png create mode 100644 windows/msix/assets/Square150x150Logo.scale-200.png create mode 100644 windows/msix/assets/Square310x310Logo.png create mode 100644 windows/msix/assets/Square44x44Logo.png create mode 100644 windows/msix/assets/Square44x44Logo.scale-200.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-16.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-16_altform-lightunplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-16_altform-unplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-24.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-24_altform-lightunplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-256.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-256_altform-lightunplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-256_altform-unplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-32.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-32_altform-lightunplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-32_altform-unplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-48.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-48_altform-lightunplated.png create mode 100644 windows/msix/assets/Square44x44Logo.targetsize-48_altform-unplated.png create mode 100644 windows/msix/assets/StoreLogo.png create mode 100644 windows/msix/assets/Wide310x150Logo.png diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c5220d2c..440f60d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -528,6 +528,11 @@ jobs: - name: Build installer and portables run: .\windows\build-installer.ps1 -X64BuildDir "build-x64" -Arm64BuildDir "build-arm64" -Version "${{ steps.version.outputs.version }}" + # Unsigned on purpose: the Store re-signs the bundle during + # certification. See windows/build-msix.ps1. + - name: Build Store package (MSIX) + run: .\windows\build-msix.ps1 -X64BuildDir "build-x64" -Arm64BuildDir "build-arm64" -Version "${{ steps.version.outputs.version }}" + - name: Sign installer for WinSparkle (EdDSA) if: env.SPARKLE_PRIVATE_KEY != '' env: @@ -558,6 +563,7 @@ jobs: plezy-windows-x64-portable.7z plezy-windows-arm64-portable.7z plezy-windows-installer.exe + plezy-windows.msixbundle - name: Upload x64 portable uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 @@ -580,6 +586,15 @@ jobs: win-ed-signature.txt win-installer-size.txt + # Deliberately not attached to the GitHub release in create-release: a + # Store-identity package cannot be installed without the Store's + # certificate, so it is only useful as a Partner Center upload. + - name: Upload Store package + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: windows-msix + path: plezy-windows.msixbundle + build-linux: needs: validate-trusted-ref name: Build Linux (${{ matrix.arch }}) diff --git a/.gitignore b/.gitignore index 64274250..99f47ebb 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,11 @@ migrate_working_dir/ /build/ /debug-info/ +# Windows Store packaging output (windows/build-msix.ps1) +/staging-msix/ +/plezy-windows.msixbundle +/AppxManifest.*.xml + # tvOS: build artifacts and generated assets (regenerated by xcode_appletv.sh) tvos/build/ tvos/Pods/ diff --git a/lib/screens/settings/settings_screen.dart b/lib/screens/settings/settings_screen.dart index ad85370a..ca71065b 100644 --- a/lib/screens/settings/settings_screen.dart +++ b/lib/screens/settings/settings_screen.dart @@ -203,7 +203,7 @@ class _SettingsScreenState extends State with FocusableTab, Moun _buildAdvancedSection(), - if (UpdateService.isUpdateCheckEnabled) ...[_buildUpdateSection()], + if (UpdateService.isUpdateCheckAvailable) ...[_buildUpdateSection()], // Hidden on Android TV / tvOS (no document picker); desktop in // force-TV mode keeps it — FilePickerService works there. diff --git a/lib/services/donation_service.dart b/lib/services/donation_service.dart index b1799ad0..e5f6ad7a 100644 --- a/lib/services/donation_service.dart +++ b/lib/services/donation_service.dart @@ -1,7 +1,13 @@ +import 'package:plezy/utils/platform_detector.dart'; + class DonationService { static const String donationUrl = 'https://liberapay.com/edde746'; + /// Suppressed inside a packaged (MSIX/Store) install: Microsoft Store policy + /// treats a link that solicits payment outside the Store as a commerce + /// mechanism, so the tile is a certification risk there. Every other Windows + /// build shape and every other platform keeps it. static bool get isEnabled { - return const bool.fromEnvironment('ENABLE_DONATIONS', defaultValue: false); + return const bool.fromEnvironment('ENABLE_DONATIONS', defaultValue: false) && !PlatformDetector.isPackagedInstall(); } } diff --git a/lib/services/update_service.dart b/lib/services/update_service.dart index 2b913f72..a100b8a5 100644 --- a/lib/services/update_service.dart +++ b/lib/services/update_service.dart @@ -5,6 +5,7 @@ import 'package:auto_updater/auto_updater.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:plezy/utils/app_logger.dart'; import 'package:plezy/utils/media_server_http_client.dart'; +import 'package:plezy/utils/platform_detector.dart'; import 'base_shared_preferences_service.dart'; /// Service to check for new versions on GitHub @@ -30,10 +31,17 @@ class UpdateService { return const bool.fromEnvironment('ENABLE_UPDATE_CHECK', defaultValue: false); } + /// Whether any in-app update path applies to this install. + /// False inside a packaged (MSIX/Store) install: the Store owns updates and + /// the package directory is read-only, so neither WinSparkle nor the GitHub + /// fallback dialog has anything it can do. Gates the settings entry too, so + /// no dead affordance ships. + static bool get isUpdateCheckAvailable => isUpdateCheckEnabled && !PlatformDetector.isPackagedInstall(); + /// Whether the native auto_updater (Sparkle/WinSparkle) should be used. /// True on macOS (non-Homebrew) and installed Windows (has uninstaller). static bool get useNativeUpdater { - if (!isUpdateCheckEnabled) return false; + if (!isUpdateCheckAvailable) return false; if (Platform.isMacOS) return !_isHomebrewInstall(); if (Platform.isWindows) return _isInstalledApp() && !_isWingetInstall(); return false; @@ -140,7 +148,7 @@ class UpdateService { MediaServerHttpClient? client, bool forceEnabled = false, }) async { - if (!forceEnabled && !isUpdateCheckEnabled) { + if (!forceEnabled && !isUpdateCheckAvailable) { return null; } diff --git a/lib/utils/platform_detector.dart b/lib/utils/platform_detector.dart index 20275c74..f719c2c7 100644 --- a/lib/utils/platform_detector.dart +++ b/lib/utils/platform_detector.dart @@ -5,6 +5,7 @@ import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'app_logger.dart'; import 'async_singleton.dart'; import 'device_channel.dart'; @@ -275,6 +276,29 @@ class PlatformDetector { _debugIsDesktopOSOverride = value; } + /// Whether an executable path belongs to a packaged (MSIX/Store) install. + /// Packaged apps run from C:\Program Files\WindowsApps\\, matched + /// case-insensitively because a casing difference would silently re-enable + /// the paths a read-only package cannot support. + @visibleForTesting + static bool isPackagedExecutablePath(String exePath) { + return exePath.toLowerCase().contains('\\windowsapps\\'); + } + + /// True inside a packaged (MSIX/Microsoft Store) install. The Store owns + /// updates and the package directory is read-only, and Store policy treats an + /// external donation link as a commerce mechanism, so both of those + /// affordances are suppressed there. + static bool isPackagedInstall() { + try { + if (!Platform.isWindows) return false; + return isPackagedExecutablePath(Platform.resolvedExecutable); + } catch (error, stackTrace) { + appLogger.e('Failed to determine packaged install status', error: error, stackTrace: stackTrace); + return false; + } + } + static bool supportsExternalPlayers() { if (isAppleTV()) return false; return Platform.isAndroid || Platform.isIOS || Platform.isMacOS || Platform.isLinux || Platform.isWindows; diff --git a/scripts/check_windows_msix.py b/scripts/check_windows_msix.py new file mode 100644 index 00000000..81052483 --- /dev/null +++ b/scripts/check_windows_msix.py @@ -0,0 +1,389 @@ +#!/usr/bin/env python3 +"""Guard the generated MSIX manifest behind Microsoft Store submissions. + +windows/build-msix.ps1 generates AppxManifest.xml per architecture at package +time, so there is no manifest in the tree to review. These checks read the +script as text and validate the template it returns - they never invoke +PowerShell, because root CI runs on Linux where pwsh cannot be assumed, and +-EmitManifestOnly is the Windows-side developer loop instead. + +The invariants pinned here are the ones makeappx, the shell and Store +certification enforce: the schema's fixed child order, identity strings that +satisfy their pattern constraints and match the reserved product, a four-part +version whose revision field is the 0 the Store reserves, one template shared by +both architectures, assets that actually exist in the tree, and the resource +index without which the unplated taskbar icons never resolve. +""" + +import hashlib +from pathlib import Path +import re +import sys +from xml.etree import ElementTree + +from pubspec_version import parse_pubspec_version +from workflow_yaml import job_block + + +ROOT = Path(__file__).resolve().parents[1] +DEFAULT_SCRIPT = ROOT / "windows/build-msix.ps1" +if len(sys.argv) > 2: + raise SystemExit(f"Usage: {Path(sys.argv[0]).name} [build-msix-path]") +SCRIPT = Path(sys.argv[1]).resolve() if len(sys.argv) == 2 else DEFAULT_SCRIPT +ASSETS = ROOT / "windows/msix/assets" +CMAKE = ROOT / "windows/CMakeLists.txt" +PUBSPEC = ROOT / "pubspec.yaml" +WORKFLOW = ROOT / ".github/workflows/build.yml" +MSIX_STEP = "Build Store package (MSIX)" +BUNDLE = "plezy-windows.msixbundle" +# The identity reserved in Partner Center. All three are pinned here because a +# character of drift in any of them fails Store validation, and the first two +# derive the package family name edde746.Plezy_13q3sv6jzathm that installed +# copies are keyed by. +IDENTITY_NAME = "edde746.Plezy" +PUBLISHER = "CN=AA9C53CB-AD3C-48DA-B3E3-D1E8986D4E25" +PUBLISHER_DISPLAY_NAME = "edde746" +PACKAGE_FAMILY_SUFFIX = "13q3sv6jzathm" +FOUNDATION = "http://schemas.microsoft.com/appx/manifest/foundation/windows10" +ASSET_REFERENCE = re.compile(r"assets\\([A-Za-z0-9._-]+\.png)") +# Package's child order is fixed by the foundation schema. A manifest may use a +# subset of these, but never a different order. +SCHEMA_ORDER = ( + "Identity", + "PhoneIdentity", + "PublisherInfo", + "Properties", + "Resources", + "Dependencies", + "Capabilities", + "Applications", + "Extensions", +) +REQUIRED_ELEMENTS = ( + "Identity", + "Properties", + "Resources", + "Dependencies", + "Capabilities", + "Applications", +) +REQUIRED_CAPABILITIES = ("runFullTrust", "internetClient", "privateNetworkClientServer") +# Certification requires these three. The optional tile and splash assets are +# only checked once referenced, since dropping them is a legitimate choice. +REQUIRED_ASSETS = ("StoreLogo.png", "Square150x150Logo.png", "Square44x44Logo.png") + +# Normalized so that every pattern below can anchor on \n and $ regardless of +# whether this checkout stores the PowerShell scripts with CRLF endings. +text = SCRIPT.read_text(encoding="utf-8").replace("\r\n", "\n") +errors: list[str] = [] + + +def require(condition: bool, message: str) -> None: + if not condition: + errors.append(message) + + +def local_name(tag: str) -> str: + return tag.rpartition("}")[2] + + +def declarations() -> str: + """New-AppxManifest above its here-string: params and identity strings.""" + match = re.search(r'(?ms)^function New-AppxManifest \{\n(.*?)^ return @"$', text) + require(match is not None, "New-AppxManifest must return a here-string template") + return match.group(1) if match else "" + + +def template() -> str: + """The AppxManifest.xml emitted by New-AppxManifest.""" + match = re.search(r'(?ms)^ return @"\n(.*?)\n"@\n', text) + require(match is not None, "New-AppxManifest must return a single here-string template") + return match.group(1) if match else "" + + +def substitute(manifest: str, values: dict[str, str]) -> str: + """Fill the template's PowerShell interpolations with their real values. + + Longest name first: $PublisherDisplayName also starts with $Publisher, and + PowerShell resolves the longer name. + """ + for name in sorted(values, key=len, reverse=True): + manifest = manifest.replace(f"${name}", values[name]) + unresolved = sorted(set(re.findall(r"\$\w+", manifest))) + require( + not unresolved, + "the template interpolates values this checker cannot resolve: " + f"{', '.join(unresolved)}", + ) + return manifest + + +def package_family_suffix(publisher: str) -> str: + """The 13-character hash Windows derives from a publisher distinguished name. + + SHA-256 over the UTF-16LE publisher, first 8 bytes, padded to 65 bits and + base32-encoded with the alphabet Windows uses for this (i, l, o and u are + omitted). + """ + digest = hashlib.sha256(publisher.encode("utf-16-le")).digest()[:8] + bits = f"{int.from_bytes(digest, 'big'):064b}0" + alphabet = "0123456789abcdefghjkmnpqrstvwxyz" + return "".join(alphabet[int(bits[index : index + 5], 2)] for index in range(0, 65, 5)) + + +def named_step(block: str, name: str) -> str: + match = re.search(rf"(?ms)^ - name: {re.escape(name)}\n.*?(?=^ - |\Z)", block) + require(match is not None, f"missing '{name}' step in package-windows") + return match.group(0) if match else "" + + +require( + "function New-AppxManifest" in text, + "the manifest must be built by New-AppxManifest so every architecture shares one template", +) +prelude = declarations() +manifest_template = template() + +# build-installer.ps1 once carried one whole .iss per architecture shape and the +# copies drifted apart. Anything that appears twice here has drifted too. +for once in ( + r'^ return @"$', + r"^$", + r"^ $", +): + require( + len(re.findall(once, text, re.MULTILINE)) == 1, + f"{once} must match exactly one line; a second copy of the template will drift", + ) + +# The two values the caller supplies, plus every identity string the function +# declares. Together they must cover the whole template, so an interpolation +# added there has to be declared here before it can pass. +for parameter in ("MsixVersion", "Architecture"): + require( + f"[Parameter(Mandatory)][string]${parameter}" in prelude, + f"New-AppxManifest must take ${parameter} as a mandatory parameter", + ) +pubspec_version, _ = parse_pubspec_version(PUBSPEC.read_text(encoding="utf-8")) +values = {"MsixVersion": f"{pubspec_version}.0", "Architecture": "x64"} +values.update(re.findall(r'(?m)^ \$(\w+) = "([^"]*)"$', prelude)) + +substituted = substitute(manifest_template, values) +package = None +try: + package = ElementTree.fromstring(substituted) +except ElementTree.ParseError as error: + require(False, f"the substituted manifest must be well-formed XML: {error}") + +if package is not None: + require( + package.tag == f"{{{FOUNDATION}}}Package", + "the root element must be Package in the appx foundation namespace", + ) + + present = [local_name(child.tag) for child in package] + missing = [element for element in REQUIRED_ELEMENTS if element not in present] + require(not missing, f"the manifest must declare {', '.join(missing)}") + require( + [element for element in present if element in SCHEMA_ORDER] + == [element for element in SCHEMA_ORDER if element in present], + "Package children must keep schema order " + f"({', '.join(SCHEMA_ORDER)}); makeappx rejects a reordered manifest", + ) + require(len(present) == len(set(present)), "no Package child may be declared twice") + + identity = package.find(f"{{{FOUNDATION}}}Identity") + if identity is None: + require(False, "the manifest must declare an Identity element") + else: + # Both patterns are schema constraints: makeappx refuses the package + # before reading a single payload file when either is violated. + require( + re.fullmatch(r"[-.A-Za-z0-9]{3,50}", identity.get("Name") or "") is not None, + "Identity/@Name must match the schema's [-.A-Za-z0-9]+ pattern; an underscore " + "is rejected by makeappx before it reads any payload", + ) + require( + (identity.get("Publisher") or "").startswith("CN="), + "Identity/@Publisher must be the full distinguished name, starting with CN=", + ) + require( + identity.get("Name") == IDENTITY_NAME + and identity.get("Publisher") == PUBLISHER + and package.findtext( + f"{{{FOUNDATION}}}Properties/{{{FOUNDATION}}}PublisherDisplayName" + ) + == PUBLISHER_DISPLAY_NAME, + "the manifest must carry the identity reserved in Partner Center " + f"({IDENTITY_NAME}, {PUBLISHER}, {PUBLISHER_DISPLAY_NAME}); any drift fails " + "Store validation", + ) + require( + identity.get("Version") == values["MsixVersion"], + "Identity/@Version must be the pubspec version plus the Store-reserved " + f"revision field: expected {values['MsixVersion']}", + ) + + capabilities = [ + child.get("Name") for child in package.findall(f"{{{FOUNDATION}}}Capabilities/*") + ] + for capability in REQUIRED_CAPABILITIES: + require( + capability in capabilities, + f"the manifest must declare the {capability} capability", + ) + require( + "Windows.Desktop" + in [ + child.get("Name") + for child in package.findall( + f"{{{FOUNDATION}}}Dependencies/{{{FOUNDATION}}}TargetDeviceFamily" + ) + ], + "Dependencies must target Windows.Desktop; packaging fails without a device family", + ) + + application = package.find(f"{{{FOUNDATION}}}Applications/{{{FOUNDATION}}}Application") + binary_name = re.search( + r'(?m)^set\(BINARY_NAME "([^"]+)"\)$', CMAKE.read_text(encoding="utf-8") + ) + require(binary_name is not None, "windows/CMakeLists.txt must set BINARY_NAME") + if application is None: + require(False, "the manifest must declare an Application element") + elif binary_name is not None: + require( + application.get("Executable") == f"{binary_name.group(1)}.exe", + "Application/@Executable must be the executable windows/CMakeLists.txt builds, " + f"{binary_name.group(1)}.exe", + ) + require( + application.get("EntryPoint") == "Windows.FullTrustApplication", + "a packaged Win32 app must enter through Windows.FullTrustApplication", + ) + + # Assets are named in attributes (the tile logos) and in element text (the + # Properties/Logo), so both are scanned. + referenced = { + match.group(1) + for element in package.iter() + for value in (*element.attrib.values(), element.text or "") + if (match := ASSET_REFERENCE.fullmatch(value.strip())) + } + for asset in REQUIRED_ASSETS: + require(asset in referenced, f"the manifest must reference {asset}") + for asset in sorted(referenced): + require( + (ASSETS / asset).is_file(), + f"windows/msix/assets/{asset} is referenced by the manifest but is not in the " + "tree; packaging fails on a missing asset", + ) + +# Independent of the manifest: Partner Center reports the package family name, +# so recomputing it from the pinned publisher proves that string is byte-exact. +# A mistyped publisher otherwise only surfaces as a rejected upload. +require( + package_family_suffix(PUBLISHER) == PACKAGE_FAMILY_SUFFIX, + f"the pinned publisher must hash to the package family name reported by Partner " + f"Center, {IDENTITY_NAME}_{PACKAGE_FAMILY_SUFFIX}", +) + +require( + 'Version="$MsixVersion"' in manifest_template, + "Identity/@Version must come from the single version variable, not a literal", +) +require( + 'ProcessorArchitecture="$Architecture"' in manifest_template, + "Identity/@ProcessorArchitecture must be interpolated, not pinned to one architecture", +) +require( + len(re.findall(r"(?m)^\$MsixVersion = ", text)) == 1, + "the MSIX version must be derived once, so the bundle and both packages agree", +) +require( + re.search(r'(?m)^ return "\$\w+\.0"$', text) is not None, + "the MSIX version must append the Store-reserved revision field as 0", +) +require( + r"($Version -split '\+')[0]" in text, + "pubspec's +build metadata must be stripped; the Store reserves the fourth field", +) +require( + r"'^\d+\.\d+\.\d+$'" in text, + "a version that is not major.minor.patch must be rejected instead of packaged", +) + +# Native exit codes are invisible to $ErrorActionPreference, so the one +# invocation that checks $LASTEXITCODE has to be the only one. +require( + len(re.findall(r"(?m)^ & \$Tool @Arguments$", text)) == 1 + and "& $MakeAppx" not in text + and "& $MakePri" not in text + and "$LASTEXITCODE -ne 0" in text, + "every SDK tool call must go through the single invocation that checks $LASTEXITCODE", +) + +# The taskbar, task view and Alt-Tab draw the small logo on a plate filled with +# BackgroundColor, and the manifest's transparent background leaves the shell +# painting the user's accent colour behind the icon. Only an altform-unplated +# variant suppresses that plate, and qualified variants resolve solely through +# resources.pri - as plain payload files they are inert. +for form in ("altform-unplated", "altform-lightunplated"): + require( + any(ASSETS.glob(f"Square44x44Logo.targetsize-*_{form}.png")), + f"the small logo needs targetsize {form} variants, or the shell draws the taskbar " + "icon on an accent-coloured plate", + ) +require( + '"new", "/pr"' in text and "resources.pri" in text, + "the staged payload must be indexed into resources.pri, or every qualified logo " + "variant is inert payload", +) +require( + "RemoveChild($Packaging)" in text, + "autoResourcePackage must be stripped from the PRI config; it moves the qualified " + "logos into resource-package indexes that a per-architecture .msix never carries", +) +require( + "signtool" not in text.lower(), + "the bundle must stay unsigned; the Store re-signs it, and any other certificate " + "fails publisher-identity validation", +) + +# The version the manifest carries is passed in by the workflow, so the link +# back to pubspec.yaml lives there rather than in the script. +workflow = WORKFLOW.read_text(encoding="utf-8") +package_windows = job_block(workflow, "package-windows") +require(bool(package_windows), "missing package-windows job") +msix_step = named_step(package_windows, MSIX_STEP) +for argument in ( + ".\\windows\\build-msix.ps1", + '-X64BuildDir "build-x64"', + '-Arm64BuildDir "build-arm64"', + '-Version "${{ steps.version.outputs.version }}"', +): + require( + argument in msix_step, + f"the MSIX step must reuse the existing packaging inputs: {argument}", + ) +require( + "pubspec.yaml" in package_windows, + "the version handed to both packaging scripts must be read from pubspec.yaml", +) +require( + package_windows.count(BUNDLE) == 2, + f"{BUNDLE} must be attested and uploaded, exactly once each", +) +require( + BUNDLE not in job_block(workflow, "create-release"), + f"{BUNDLE} must not be attached to the GitHub release; a Store-identity package " + "cannot be installed without the Store certificate", +) + +if errors: + for error in errors: + print(f"ERROR: {error}", file=sys.stderr) + sys.exit(1) + +print("windows msix manifest checks passed") diff --git a/scripts/ci_guard_checks.sh b/scripts/ci_guard_checks.sh index f8e80488..00687054 100644 --- a/scripts/ci_guard_checks.sh +++ b/scripts/ci_guard_checks.sh @@ -24,7 +24,8 @@ for checker in \ scripts/check_workflow_action_pins.py \ scripts/check_container_image_pins.py \ scripts/check_update_packages_workflow.py \ - scripts/check_windows_installer.py; do + scripts/check_windows_installer.py \ + scripts/check_windows_msix.py; do python3 "$checker" done diff --git a/scripts/generate_windows_msix_assets.ps1 b/scripts/generate_windows_msix_assets.ps1 new file mode 100644 index 00000000..8074d5bf --- /dev/null +++ b/scripts/generate_windows_msix_assets.ps1 @@ -0,0 +1,88 @@ +#!/usr/bin/env pwsh +# Windows MSIX Asset Generator +# Renders the tile, store and splash PNGs the Store manifest references from +# assets/plezy.png, for windows/msix/assets. The results are committed and +# windows/build-msix.ps1 only copies them, so packaging stays runnable without +# image tooling; regenerating is only needed when the app icon changes. + +$ErrorActionPreference = "Stop" + +$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path +$ProjectRoot = Split-Path -Parent $ScriptDir +Set-Location $ProjectRoot + +Add-Type -AssemblyName System.Drawing + +$Source = Resolve-Path "assets\plezy.png" +$OutputDir = Join-Path $ProjectRoot "windows\msix\assets" + +# Sizes and names come from the uap:VisualElements attributes in the manifest +# template; a rename here has to be made there too. The two non-square targets +# letterbox the square icon on transparent padding rather than stretching it. +$Targets = @( + @{ Name = "Square44x44Logo.png"; Width = 44; Height = 44 } + @{ Name = "Square150x150Logo.png"; Width = 150; Height = 150 } + @{ Name = "StoreLogo.png"; Width = 50; Height = 50 } + @{ Name = "Wide310x150Logo.png"; Width = 310; Height = 150 } + @{ Name = "Square310x310Logo.png"; Width = 310; Height = 310 } + @{ Name = "SplashScreen.png"; Width = 620; Height = 300 } + # The base logos are scale-100. Without a 200 the shell upscales them on the + # high-DPI displays most laptops ship with. + @{ Name = "Square44x44Logo.scale-200.png"; Width = 88; Height = 88 } + @{ Name = "Square150x150Logo.scale-200.png"; Width = 300; Height = 300 } +) + +# The taskbar, task view and Alt-Tab draw the small logo on a plate filled with +# BackgroundColor, and a transparent background leaves the shell painting the +# user's accent colour behind the icon. An altform-unplated variant is the only +# way to suppress that plate; lightunplated is its light-theme counterpart. +# These resolve through resources.pri, which windows/build-msix.ps1 builds - as +# plain payload files they are inert. +foreach ($Size in 16, 24, 32, 48, 256) { + foreach ($Form in "", "_altform-unplated", "_altform-lightunplated") { + $Targets += @{ Name = "Square44x44Logo.targetsize-${Size}${Form}.png"; Width = $Size; Height = $Size } + } +} + +# Regenerate from scratch so a renamed target cannot leave an orphan behind. +if (Test-Path $OutputDir) { Remove-Item (Join-Path $OutputDir "*.png") -Force } +New-Item -ItemType Directory -Path $OutputDir -Force | Out-Null + +Write-Host "Generating MSIX assets from $Source..." -ForegroundColor Cyan + +$SourceImage = [System.Drawing.Image]::FromFile($Source) +try { + foreach ($Target in $Targets) { + $Canvas = New-Object System.Drawing.Bitmap( + $Target.Width, $Target.Height, [System.Drawing.Imaging.PixelFormat]::Format32bppArgb) + try { + $Graphics = [System.Drawing.Graphics]::FromImage($Canvas) + try { + # SourceCopy keeps the icon's own alpha instead of blending it + # into the canvas; the manifest declares a transparent tile + # background and expects the padding to stay transparent. + $Graphics.CompositingMode = [System.Drawing.Drawing2D.CompositingMode]::SourceCopy + $Graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic + $Graphics.PixelOffsetMode = [System.Drawing.Drawing2D.PixelOffsetMode]::HighQuality + + $Edge = [Math]::Min($Target.Width, $Target.Height) + $Left = [int](($Target.Width - $Edge) / 2) + $Top = [int](($Target.Height - $Edge) / 2) + $Graphics.DrawImage( + $SourceImage, (New-Object System.Drawing.Rectangle($Left, $Top, $Edge, $Edge))) + } finally { + $Graphics.Dispose() + } + + $Path = Join-Path $OutputDir $Target.Name + $Canvas.Save($Path, [System.Drawing.Imaging.ImageFormat]::Png) + Write-Host " $($Target.Name) ($($Target.Width)x$($Target.Height))" -ForegroundColor Green + } finally { + $Canvas.Dispose() + } + } +} finally { + $SourceImage.Dispose() +} + +Write-Host "`nWrote $($Targets.Count) asset(s) to $OutputDir" -ForegroundColor White diff --git a/scripts/test_check_windows_msix.py b/scripts/test_check_windows_msix.py new file mode 100644 index 00000000..dee286cc --- /dev/null +++ b/scripts/test_check_windows_msix.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python3 +"""Behavior tests for the Windows MSIX manifest guard.""" + +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + + +ROOT = Path(__file__).resolve().parents[1] +CHECKER = ROOT / "scripts/check_windows_msix.py" +SCRIPT = ROOT / "windows/build-msix.ps1" + + +class WindowsMsixGuardTest(unittest.TestCase): + def _run(self, script: str) -> subprocess.CompletedProcess[str]: + with tempfile.TemporaryDirectory(prefix="plezy-windows-msix-test-") as directory: + fixture = Path(directory) / "build-msix.ps1" + fixture.write_text(script, encoding="utf-8") + return subprocess.run( + [sys.executable, str(CHECKER), str(fixture)], + cwd=ROOT, + check=False, + capture_output=True, + text=True, + ) + + def _script(self) -> str: + return SCRIPT.read_text(encoding="utf-8") + + def _mutate(self, old: str, new: str) -> str: + script = self._script().replace(old, new, 1) + self.assertNotEqual(script, self._script(), f"fixture mutation no longer matches: {old!r}") + return script + + def test_current_script_passes(self) -> None: + result = self._run(self._script()) + + self.assertEqual(result.returncode, 0, result.stderr) + self.assertIn("msix manifest checks passed", result.stdout) + + def test_second_template_copy_is_rejected(self) -> None: + # The regression build-installer.ps1 already had: one whole manifest per + # architecture shape, drifting apart. + marker = " \n" + script = self._mutate(marker, marker + marker) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("a second copy of the template will drift", result.stderr) + + def test_schema_element_order_is_rejected_when_tidied(self) -> None: + # Resources before Dependencies looks wrong next to the old Visual + # Studio UWP templates, but the foundation schema requires it. + resources = ( + " \n" + ' \n' + " \n" + "\n" + ) + dependencies = ( + " \n" + ' \n' + " \n" + "\n" + ) + script = self._mutate(resources + dependencies, dependencies + resources) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("must keep schema order", result.stderr) + + def test_hard_coded_architecture_is_rejected(self) -> None: + script = self._mutate( + 'ProcessorArchitecture="$Architecture"', 'ProcessorArchitecture="x64"' + ) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("must be interpolated", result.stderr) + + def test_underscored_identity_name_is_rejected(self) -> None: + # makeappx enforces the schema pattern on Identity/@Name before it reads + # any payload, so an underscore makes the package unbuildable. + script = self._mutate('$IdentityName = "edde746.Plezy"', '$IdentityName = "edde746_Plezy"') + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("[-.A-Za-z0-9]+ pattern", result.stderr) + + def test_identity_drift_from_partner_center_is_rejected(self) -> None: + # The reserved identity is what Store validation matches the upload + # against, and what installed copies are keyed by. + script = self._mutate( + '$PublisherDisplayName = "edde746"', '$PublisherDisplayName = "someone else"' + ) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("reserved in Partner Center", result.stderr) + + def test_three_part_version_is_rejected(self) -> None: + script = self._mutate(' return "$Semver.0"', ' return "$Semver"') + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("Store-reserved revision field", result.stderr) + + def test_unvalidated_version_input_is_rejected(self) -> None: + script = self._mutate(r"if ($Semver -notmatch '^\d+\.\d+\.\d+$') {", "if ($false) {") + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("must be rejected instead of packaged", result.stderr) + + def test_dropping_a_capability_is_rejected(self) -> None: + script = self._mutate(' \n', "") + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("runFullTrust capability", result.stderr) + + def test_asset_reference_without_a_file_is_rejected(self) -> None: + script = self._mutate("Square150x150Logo.png", "Square150x150Logo-renamed.png") + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("packaging fails on a missing asset", result.stderr) + + def test_unresolved_interpolation_is_rejected(self) -> None: + # A new variable in the template has to be declared where the checker + # can see it, or the manifest it validates is not the one that ships. + script = self._mutate("Plezy", "$AppName") + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("cannot resolve", result.stderr) + + def test_malformed_manifest_is_rejected(self) -> None: + script = self._mutate("", "") + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("well-formed XML", result.stderr) + + def test_unchecked_makeappx_invocation_is_rejected(self) -> None: + script = self._mutate( + 'Write-Host "`nBuild complete!" -ForegroundColor Green', + '& $MakeAppx bundle /d packages /p extra.msixbundle', + ) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("checks $LASTEXITCODE", result.stderr) + + def test_dropping_the_resource_index_is_rejected(self) -> None: + # Without resources.pri the unplated logo variants are inert payload and + # the shell plates the taskbar icon with the accent colour. + script = self._mutate('"new", "/pr"', '"version", "/pr"') + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("inert payload", result.stderr) + + def test_keeping_auto_resource_packages_is_rejected(self) -> None: + script = self._mutate( + "$PriConfigXml.resources.RemoveChild($Packaging)", "$PriConfigXml.resources.AppendChild($Packaging)" + ) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("autoResourcePackage must be stripped", result.stderr) + + def test_signing_the_bundle_is_rejected(self) -> None: + script = self._mutate( + "# Clean up staging", + '& signtool sign /fd SHA256 /f release.pfx $Bundle\n\n# Clean up staging', + ) + + result = self._run(script) + + self.assertNotEqual(result.returncode, 0) + self.assertIn("must stay unsigned", result.stderr) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/screens/settings/settings_screen_test.dart b/test/screens/settings/settings_screen_test.dart index 209cd5a7..34c7d384 100644 --- a/test/screens/settings/settings_screen_test.dart +++ b/test/screens/settings/settings_screen_test.dart @@ -135,7 +135,7 @@ void main() { _MigratedRow( title: t.settings.checkForUpdates, focusLabel: 'settings_check_for_updates', - isVisible: UpdateService.isUpdateCheckEnabled && UpdateService.useNativeUpdater, + isVisible: UpdateService.isUpdateCheckAvailable && UpdateService.useNativeUpdater, hasSubtitle: false, ), ]; @@ -237,7 +237,7 @@ void main() { await _pumpUi(tester); } - if (!UpdateService.isUpdateCheckEnabled) { + if (!UpdateService.isUpdateCheckAvailable) { expect(find.text(t.settings.checkForUpdates), findsNothing); return; } diff --git a/test/utils/platform_detector_test.dart b/test/utils/platform_detector_test.dart index a89255f3..79c02bd1 100644 --- a/test/utils/platform_detector_test.dart +++ b/test/utils/platform_detector_test.dart @@ -141,4 +141,39 @@ void main() { expect(allowed(host: false, automotive: true), isFalse); }); }); + + group('isPackagedExecutablePath', () { + test('a WindowsApps executable path is a packaged install', () { + expect( + PlatformDetector.isPackagedExecutablePath( + r'C:\Program Files\WindowsApps\edde746.Plezy_2.11.0.0_x64__13q3sv6jzathm\plezy.exe', + ), + isTrue, + ); + }); + + test('the package directory is matched however it is cased', () { + expect( + PlatformDetector.isPackagedExecutablePath( + r'c:\program files\windowsapps\edde746.Plezy_2.11.0.0_x64__13q3sv6jzathm\plezy.exe', + ), + isTrue, + reason: + 'Windows paths are case-insensitive; a casing difference must not restore ' + 'the updater and donation link inside a read-only package', + ); + }); + + test('installed and portable executable paths are not packaged installs', () { + expect(PlatformDetector.isPackagedExecutablePath(r'C:\Program Files\Plezy\plezy.exe'), isFalse); + expect(PlatformDetector.isPackagedExecutablePath(r'D:\portable\plezy-windows-x64\plezy.exe'), isFalse); + }); + + test('a directory whose name merely starts the same is not a package', () { + expect( + PlatformDetector.isPackagedExecutablePath(r'C:\Users\someone\Downloads\WindowsApps-backup\plezy.exe'), + isFalse, + ); + }); + }); } diff --git a/windows/build-msix.ps1 b/windows/build-msix.ps1 new file mode 100644 index 00000000..56fb4015 --- /dev/null +++ b/windows/build-msix.ps1 @@ -0,0 +1,268 @@ +#!/usr/bin/env pwsh +# Windows Store (MSIX) Build Script +# Packs the per-arch Flutter Release output into one dual-architecture +# .msixbundle for Microsoft Store submission. Purely additive: the Inno Setup +# installer, the portable archives and the WinSparkle appcast are untouched. +# +# Nothing here signs the bundle. The Store re-signs after certification, and a +# package signed with any other certificate fails publisher-identity validation. + +param( + [string]$OutputDir = ".", + [string]$Version = "1.0.0", + [string]$X64BuildDir, + [string]$Arm64BuildDir, + # Write the generated AppxManifest.xml files and stop, so they can be + # inspected without the Windows SDK or a populated Flutter build output. + # scripts/check_windows_msix.py parses the template rather than running + # this: root CI is Linux, where PowerShell cannot be assumed. + [switch]$EmitManifestOnly +) + +function ConvertTo-MsixVersion { + param([Parameter(Mandatory)][string]$Version) + + # The Store reserves the fourth (revision) field, so pubspec's + # major.minor.patch+build maps to major.minor.patch.0 and the build number + # is dropped. Two releases differing only by build number therefore collide + # in the Store: every submission needs a semver bump. + $Semver = ($Version -split '\+')[0] + if ($Semver -notmatch '^\d+\.\d+\.\d+$') { + throw "Version must be major.minor.patch, optionally with +build metadata; got '$Version'" + } + return "$Semver.0" +} + +function New-AppxManifest { + param( + [Parameter(Mandatory)][string]$MsixVersion, + [Parameter(Mandatory)][string]$Architecture + ) + + # Copied verbatim from the reserved product's identity page in Partner + # Center; Store validation rejects the upload if any of the three differs by + # a single character. Together they yield package family name + # edde746.Plezy_13q3sv6jzathm. Identity/@Name is also constrained to + # '[-.A-Za-z0-9]+' by the schema, so it can never carry an underscore. + $IdentityName = "edde746.Plezy" + $Publisher = "CN=AA9C53CB-AD3C-48DA-B3E3-D1E8986D4E25" + $PublisherDisplayName = "edde746" + + # One template for both architectures, which can therefore not drift apart; + # ProcessorArchitecture is the only difference between them. + # + # Child element order is fixed by the foundation schema and makeappx + # rejects a reordered manifest: Identity, Properties, Resources, + # Dependencies, Capabilities, Applications. Resources sitting before + # Dependencies is the opposite of what older Visual Studio UWP templates + # used - do not tidy it. + # + # runFullTrust is restricted (hence rescap) and standard for a packaged + # Win32 app. privateNetworkClientServer is what covers LAN media servers: + # a full-trust package is not AppContainer-isolated, but certification + # looks for declared network intent. + return @" + + + + + + + Plezy + $PublisherDisplayName + assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + +"@ +} + +function Write-Utf8File { + param( + [Parameter(Mandatory)][string]$Path, + [Parameter(Mandatory)][string]$Content + ) + + # The manifest declares encoding="utf-8", and Out-File -Encoding utf8 + # writes a BOM on Windows PowerShell but not on pwsh 7. Write the bytes + # directly so the manifest is identical whichever host runs this script. + [System.IO.File]::WriteAllText($Path, $Content, (New-Object System.Text.UTF8Encoding($false))) +} + +function Invoke-SdkTool { + param( + [Parameter(Mandatory)][string]$Tool, + [Parameter(Mandatory)][string[]]$Arguments + ) + + # $ErrorActionPreference does not apply to native executables, so every SDK + # tool call goes through this one checked invocation. + & $Tool @Arguments + if ($LASTEXITCODE -ne 0) { + throw "$(Split-Path -Leaf $Tool) $($Arguments -join ' ') failed with exit code $LASTEXITCODE" + } +} + +$ErrorActionPreference = "Stop" + +Write-Host "Building Windows Store package..." -ForegroundColor Cyan + +# Ensure we're in the project root +$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path +$ProjectRoot = Split-Path -Parent $ScriptDir +Set-Location $ProjectRoot + +$ResolvedOutput = Resolve-Path $OutputDir +$MsixVersion = ConvertTo-MsixVersion -Version $Version +Write-Host "Package version: $MsixVersion" -ForegroundColor Green + +# Unlike the installer's setup.iss, the manifest does not vary with which +# architectures were built, so the inspection path always emits both. +if ($EmitManifestOnly) { + Write-Host "`nGenerating manifests only..." -ForegroundColor Cyan + foreach ($Architecture in @("x64", "arm64")) { + $EmittedManifest = Join-Path $ResolvedOutput "AppxManifest.$Architecture.xml" + Write-Utf8File -Path $EmittedManifest ` + -Content (New-AppxManifest -MsixVersion $MsixVersion -Architecture $Architecture) + Write-Host "Created: $EmittedManifest" -ForegroundColor Green + } + exit 0 +} + +# Auto-detect build dirs from default Flutter output paths if not provided +if (-not $X64BuildDir -and (Test-Path "build\windows\x64\runner\Release")) { + $X64BuildDir = "build\windows\x64\runner\Release" +} +if (-not $Arm64BuildDir -and (Test-Path "build\windows\arm64\runner\Release")) { + $Arm64BuildDir = "build\windows\arm64\runner\Release" +} + +$BuildDirs = [ordered]@{} +if ($X64BuildDir -and (Test-Path $X64BuildDir)) { $BuildDirs["x64"] = $X64BuildDir } +if ($Arm64BuildDir -and (Test-Path $Arm64BuildDir)) { $BuildDirs["arm64"] = $Arm64BuildDir } + +if ($BuildDirs.Count -eq 0) { + Write-Error "No build directories found. Provide -X64BuildDir and/or -Arm64BuildDir, or run 'flutter build windows --release' first." + exit 1 +} + +Write-Host "Architectures found:" -ForegroundColor Green +foreach ($Architecture in $BuildDirs.Keys) { + Write-Host " $($Architecture): $($BuildDirs[$Architecture])" +} + +# Locate the SDK tools. The newest kit that actually ships both wins; older +# installed kits are frequently partial. +$SdkRoot = "C:\Program Files (x86)\Windows Kits\10\bin" +$SdkBin = $null +if (Test-Path $SdkRoot) { + $SdkBin = Get-ChildItem $SdkRoot -Directory | + Where-Object { $_.Name -as [version] } | + Sort-Object { [version]$_.Name } -Descending | + ForEach-Object { Join-Path $_.FullName "x64" } | + Where-Object { (Test-Path (Join-Path $_ "makeappx.exe")) -and (Test-Path (Join-Path $_ "makepri.exe")) } | + Select-Object -First 1 +} +if (-not $SdkBin) { + Write-Error "makeappx.exe and makepri.exe not found under $SdkRoot. Install the Windows 10/11 SDK, or run with -EmitManifestOnly to inspect the manifests." + exit 1 +} +$MakeAppx = Join-Path $SdkBin "makeappx.exe" +$MakePri = Join-Path $SdkBin "makepri.exe" +Write-Host "`nUsing $SdkBin" -ForegroundColor Cyan + +# Stage payload, assets and manifest per architecture. The .msix packages are +# collected in a sibling directory because makeappx bundle treats every file +# under its /d directory as a package to bundle. +$StagingRoot = Join-Path $ProjectRoot "staging-msix" +$PackageDir = Join-Path $StagingRoot "packages" +if (Test-Path $StagingRoot) { Remove-Item $StagingRoot -Recurse -Force } +New-Item -ItemType Directory -Path $PackageDir -Force | Out-Null + +# The resource index that makes the qualified assets resolvable. Without it the +# targetsize/altform-unplated logos are inert payload, and the shell plates the +# taskbar icon with the user's accent colour. Kept outside the staged payload so +# it is not packed. autoResourcePackage would move qualified assets out into +# resource-package indexes that a per-architecture .msix never carries, so the +# shell would stop finding them; strip that. +$PriConfig = Join-Path $StagingRoot "priconfig.xml" +Invoke-SdkTool -Tool $MakePri -Arguments @("createconfig", "/cf", $PriConfig, "/dq", "en-US", "/o") +$PriConfigXml = [xml](Get-Content $PriConfig) +$Packaging = $PriConfigXml.resources.packaging +if ($Packaging) { + $PriConfigXml.resources.RemoveChild($Packaging) | Out-Null + $PriConfigXml.Save($PriConfig) +} + +foreach ($Architecture in $BuildDirs.Keys) { + Write-Host "`nStaging $Architecture payload..." -ForegroundColor Cyan + $Staging = Join-Path $StagingRoot $Architecture + New-Item -ItemType Directory -Path $Staging -Force | Out-Null + Copy-Item -Path "$($BuildDirs[$Architecture])\*" -Destination $Staging -Recurse + Copy-Item -Path "windows\msix\assets" -Destination $Staging -Recurse + + Write-Utf8File -Path (Join-Path $Staging "AppxManifest.xml") ` + -Content (New-AppxManifest -MsixVersion $MsixVersion -Architecture $Architecture) + + # Indexed after the manifest is in place: makepri reads the package identity + # from it. + Write-Host "Indexing $Architecture resources..." -ForegroundColor Cyan + Invoke-SdkTool -Tool $MakePri -Arguments @( + "new", "/pr", $Staging, "/cf", $PriConfig, "/of", (Join-Path $Staging "resources.pri"), "/o" + ) + + Write-Host "Packing $Architecture..." -ForegroundColor Cyan + Invoke-SdkTool -Tool $MakeAppx -Arguments @( + "pack", "/d", $Staging, "/p", (Join-Path $PackageDir "plezy-$Architecture.msix"), "/o" + ) +} + +$Bundle = Join-Path $ResolvedOutput "plezy-windows.msixbundle" +Write-Host "`nBundling $($BuildDirs.Count) package(s)..." -ForegroundColor Cyan +Invoke-SdkTool -Tool $MakeAppx -Arguments @( + "bundle", "/d", $PackageDir, "/p", $Bundle, "/bv", $MsixVersion, "/o" +) + +# Clean up staging +Remove-Item $StagingRoot -Recurse -Force -ErrorAction SilentlyContinue + +# Summary +Write-Host "`nBuild complete!" -ForegroundColor Green +Write-Host "Architectures: $($BuildDirs.Keys -join ', ')" -ForegroundColor White +Write-Host "Store package: $Bundle" -ForegroundColor White +Write-Host "The Store signs this bundle during certification; it is unsigned here." -ForegroundColor White diff --git a/windows/msix/assets/SplashScreen.png b/windows/msix/assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..b465e417d35a7974a3c8b38c6cf502f5545111d0 GIT binary patch literal 25250 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òGJn5^c$=a7sv8aregLzWB#BQ6sc2 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 ONMHAkPN^31#s2}17c*J_ literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square150x150Logo.scale-200.png b/windows/msix/assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f4ffb48bc5cecd8037acb18195197a50493f92 GIT binary patch literal 23138 zcmY&g2{_bU`?hamNsO_3Qixd&|6bQz@5MEy^E>A`&vQTbeLoX-$w-%tg`b6rii+*x1#J^5Dr#xy z#l!%9b2B8#AN-Hn*F;x~s;pgb4*Wppq-m&0MOASRwr58VerCp9xavzq#ZH1=)E~WG zUZbMAx^+=o(=^a}X_WaE);#0{?sal~^eg%yntLWp+$@SR?^8UQ6G{e^+nldYowUBD z&o86Ezm%fuqZMAgd|9&YVT#yFxE5}*#7K)r;+nBw`71H~SB@7`u3b%Wyg9D86>_jO z?|QwxcBZv9;KtmZM%LP@34fbUNB?i%AF4C$>8Z4wT4VRdoKIN$yv`^16jl9dD6p_H zHmu@Vep}ny8{k{)wtn4h^+{oAbKaHGX4)&IKO(OTt9KZBtnE!+ck>SURhEowI@0l? z^S3w$2ZwRD&&jF!jq9JToUCfwf8U1QdfE8{9<^M;6BUeRZmKb7X|fWFz>gyDgpE&g zM%{3>)+D&)|1(mrcj(7e8K!Zoqf7zi+yz>hzGS84*II9D-9n^Cx8OG0fGhA_zQawUp~C*9J$NvVd8@9fs-Ni9N~ z0^D=0j@NU|oh251pt{2!2>yG?S7^0ykUp#qUh!|=&okd2n&$Czm&tSyMf*6M)sN8E zax0*=zLXdeoQx@rK9_kL_qOJ$v-Gy?&Qs{`@gpPC)~Bo5MvtS<4%as&mZHcz=+s|s zikOR$Zo`V$PFoDKnfco-ZI!7F=KTC+EgKQAJsowhjrMXQ59F8_`pS|uIVeHj^{Z`H zXE%-cy6gkGRDAt4W0fhTobu$@SSR+GpoF)JACx-i(*zlxml@XZRq~SKHIaNc;-%Fe zW|zEA9~zsVdbFml?yGt(zhKMCOXeUt5OHGa$!)1O&Dr_%Ws;S%II?pbE?T{N5B+w_ zhcLQ!f-FAsv2%+^A}O@^7PkK^6tGONxh*xl(`Qe1P0)9j#1w|Zn&X*Kgx9}LdxsW_ z{E%c>o30lMF;-Vse=TdypOMutW-)Sn#7Y$Faf8J?U94m>Cz{wCp29M+4i=#C43=av4F%&_28UiBu4_sjK^`L}>J9o?;MVa}vs1j^L^^2<8VMn~uJ12Hv>!;UNR;FyDg7wG! zYX`Rlr7a0}&qn7(b8tN&+n-HfK*Ynju(AzeW#d2BqlQO{ySCcF$2!!GVAjtO1eh>7 z%G}aAgxnRaiZ48b_jaNsN8akz<^3u-Cr|C{+!t32|3UBWR3 z_$cp$-n8uH2$=5QMd5WX4^1lwd-^Iz?YD2`X0btk^<69Sn?~BTh91*n5n?r}wEde; z_Tyrkj?~cZ-vVLw>R9U2r5YPA8J-6Z8sl|fkqOkLOxQvp@ehs3v$B`Rrq?{Y(>wCW zmsZc@X2HP+#`wM?9tgI6$2vk*?JeA+8LnBU z4`5?%Kl8##XS(_)ER>>@&Vzpf=}oxc+%+MZlU!|QKisO6MaHGS(8AS@-3|=}A>h)w z&G3IgE7rHv`$Hq#q)ppPR z8p$unbqi+-hex6cVnCR`iVNqR1en@b?nbo#K)ptW8xNjdDu`URp62kJ`UUo z;68nV<;a%M>`W`zlc;CKzK@%vme<(W3k~y{SrHYJdOX;`=4kt5GaNCmtvZ#7y!p^3 z=3IM6UY0WWM`%=SmVY_2VwfyiamRC;*+C4lBZ8ZCv=SInEh>)@aFyDGf|_lnr7>Uf z{Qyfs`%lev-x)Hw>;C7UUFzAiM{MjB4<@uKOc)UY7K()K%O1_y%}j{GA+70}H%&(Z zn0E$2(7$AI_tP+6PNO<>4etX-@msr+DO;H4;9ed4o7Z!rUAKWzSXem5K#@Cy_AIsg zCA>2@$@qIbr$7j(VEJR??&1n{^g%@GN4f3rrsLiQNP%dG>ukJN0n%&o=b&_9wdrel z=Tu%$p`|9eO}uk3jxelZ-5p$;pu;ylSnP=Ak;lJ<*Mp&K{7Jih--!1Wl^zuj8@Lye zXla~W4p_BI+8ukHs03=t?>H+Zai2d9RNiF&>EIq1$m^rzT+Us6Gs<^^y-=4GS>-A&Yy>GP4K2Gah&-O6C0Zn7ZiM`I;}N4`3NBmS@tXz$x@!SEwjxl z(6NF0w6;vXzyEDEpqZpF<6Aw}N2mM3py$;40-pa_jd`oA91DsYDT?K_V8zL0>y#3v z91nSn<*X=$-eu!3HaLb?Z_=(0VE})lSm#4iCT+o>84XLS;8aGZ)(NxU^qbxKKvIz4 zf~Aa1lA`VN@1W1wlit@VH0bb(e_68(D38iN)ByAH4`bdx2n?JyZ8wPYS7Io6-`O+) zvJo4K#o{jRK}=jL&dym5JSI=o(8DbB=#P3{&#e&|Q_C|^q4z-k7Ikv zoe+bFMaJQXdpv?)>qdj6N2aePgrmW!oH$)BvF?mmN(64=9a&A}lUXf)+a&uU;A?I`YGVy`QH}WIyR<;B~`X zV!UT943R(dv<;_|i4Hk7f}T9z;3S-RmGdxW(Yb;M?NXnhpt$Sp1T}-l_bObFH{}I? zhH~w{yBX-CrihoVe2L=(B@aPs!HbP|7UL>wHMR63F!iFRc+=C#OPM0E=^0_sq08#( zs(j4SHMoLyloGczd#YAdG7_gVU2~q~Asj|9+45Z9ogsfNykqM@i+5LWmLutCCqSQS z0VUoCd?h37zh#$Oc&vnzyi_E-@}glBG6KPZRwKt} zj8Eb!K%yjwejI3266t7P>6
  • 8If^?qh6>fCU*aAQ@0_XSt^2Ry$Dzu<{BJ5YeRM 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 z +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 I9QGjm2V36D2><{9 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square310x310Logo.png b/windows/msix/assets/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff1fbbdd2f4ebbd23c7ab6fe8531031fcebdd7e GIT binary patch literal 24672 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 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.png b/windows/msix/assets/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d718d4e58f736e96784c804f98e8fe7ab5c20b06 GIT binary patch literal 2750 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 Eg63>hIRF3v literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.scale-200.png b/windows/msix/assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..c754e652aa320f7462243531915b13341f07da97 GIT binary patch literal 5571 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 N26`qpt95N7{ttjtyKDde literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-16.png b/windows/msix/assets/Square44x44Logo.targetsize-16.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd9742d89b30ee2bfa9385e6c02c2a122c366f5 GIT binary patch literal 817 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 Ef{Er+O8@`> literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-24_altform-lightunplated.png b/windows/msix/assets/Square44x44Logo.targetsize-24_altform-lightunplated.png new file mode 100644 index 0000000000000000000000000000000000000000..67c4c1fe1f94eb500fda8662203bfa122656cc7a GIT binary patch literal 1294 zcmV+p1@ZccP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1fxkrK~zXftyJqz zTV)vU7X2_?qS+S{{WSjt5;ao_1={s`PA{kJX({DW=nAEj-b)LXvWe4gMziQQ^^?(= zXf`1mVW-^~8#+L_Yz&!P#-K1@+y@NKW1fR_aLAU8_)Fg8yqD+qd!Og`yhk7q2m}y| z9bS)8pKsOE6I*fmJ{vbRLX3P9_x=|wg(x3+Kd@}4>9w*{MZ-5lwZxPNA)lp(7>ahc9#&v32oLIwzG+w7TE?<9mJHc@j0H0 z2@k=n)=)6*SHny|4RZkv%m=lw7}COWSO>Vrl`Urc&mVe_t*1?Vo@ZjLTE#4ebuj5A zA>|{v4Di-$oe|a|dceIs{xp~Y8o7*G*f{+@pKl*Vs+0`gdcsR^B}sY7=_wz1VcMtu zbuOrRfZc`VLZLnWG+H<@Hco%dMyPlAylD)%^L8H6D1G*WXG&u-8tnaUAQ*w zBZSLg-8k324Q5!YHOw!Dw7Qjuj^y6X)A!T!Btj|n2=tfBm>Its2Ar~=2c7aC@Rn%u zju%)eCYJRIo?VaXP3uuZ@l=KWD9%?S)K^SBnh(1am+w_7-sAJ_!)1$*LBcCm5hMyl zaJ4W8+KO`18U1b(b3$0Uv1+c<1_sJyMn2Co(PS1fZACfIV#$Kmf^1-{B1jgBxNK19 zrY(>2;!nF|q4$(D+D?6NgwOF@T%bQnCafZ8HVffWeipP?veQCcWfJc8w@UNAO#kp6nTSY>C%uC@sb;66r?qq=9Etag2R!def z|LlPf69^8Ur%s%`NN0}!X389GHfNssQJ?V!|J*_FFX16b3;IbDfB*mh07*qoM6N<$ Ef{Er+O8@`> literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-24_altform-unplated.png b/windows/msix/assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..67c4c1fe1f94eb500fda8662203bfa122656cc7a GIT binary patch literal 1294 zcmV+p1@ZccP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1fxkrK~zXftyJqz zTV)vU7X2_?qS+S{{WSjt5;ao_1={s`PA{kJX({DW=nAEj-b)LXvWe4gMziQQ^^?(= zXf`1mVW-^~8#+L_Yz&!P#-K1@+y@NKW1fR_aLAU8_)Fg8yqD+qd!Og`yhk7q2m}y| z9bS)8pKsOE6I*fmJ{vbRLX3P9_x=|wg(x3+Kd@}4>9w*{MZ-5lwZxPNA)lp(7>ahc9#&v32oLIwzG+w7TE?<9mJHc@j0H0 z2@k=n)=)6*SHny|4RZkv%m=lw7}COWSO>Vrl`Urc&mVe_t*1?Vo@ZjLTE#4ebuj5A zA>|{v4Di-$oe|a|dceIs{xp~Y8o7*G*f{+@pKl*Vs+0`gdcsR^B}sY7=_wz1VcMtu zbuOrRfZc`VLZLnWG+H<@Hco%dMyPlAylD)%^L8H6D1G*WXG&u-8tnaUAQ*w zBZSLg-8k324Q5!YHOw!Dw7Qjuj^y6X)A!T!Btj|n2=tfBm>Its2Ar~=2c7aC@Rn%u zju%)eCYJRIo?VaXP3uuZ@l=KWD9%?S)K^SBnh(1am+w_7-sAJ_!)1$*LBcCm5hMyl zaJ4W8+KO`18U1b(b3$0Uv1+c<1_sJyMn2Co(PS1fZACfIV#$Kmf^1-{B1jgBxNK19 zrY(>2;!nF|q4$(D+D?6NgwOF@T%bQnCafZ8HVffWeipP?veQCcWfJc8w@UNAO#kp6nTSY>C%uC@sb;66r?qq=9Etag2R!def z|LlPf69^8Ur%s%`NN0}!X389GHfNssQJ?V!|J*_FFX16b3;IbDfB*mh07*qoM6N<$ Ef{Er+O8@`> literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-256.png b/windows/msix/assets/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9afb6337cf39b85ee7a12e2d80ad0b2a4a8b57 GIT binary patch literal 21276 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 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-32_altform-lightunplated.png b/windows/msix/assets/Square44x44Logo.targetsize-32_altform-lightunplated.png new file mode 100644 index 0000000000000000000000000000000000000000..8d24ca99bf4616f077ea6cbef864fffd4b65e38e GIT binary patch literal 1851 zcmV-B2gLY^P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2GB`FK~z{rwU%p4 zTV)u>rytZ9{i4z62Te@$gK-)!F&Y@xLZR(xORwj&T*k&IYfGWDz*@kSGM(2ielnSt z#28I9ac)jHBM{h+nt<`YUEys5j9SzmXQ|jI>y9qH7IiqMe0wJ!n}JgTh;4z<8hZ+cnW_jh?4Q zf#!UA`om|SdB2ga)B(iAKxjKp^hObhLCZz4Q7Dyu|DQGE)d}Kuo@Q(Hba|Ve=6r?( z$W?&Un`j9jK}!^*$$D4}2$|A2|5}qZS{~(|snOA;T3rGp0uaA}wFMxk#-9x)qF3|T z5`&gc#enf~X}nw3m`BSa_*8WsO;_hJklz7FiV)ihG2p>UOkRbZ(hdP*b`QS$9P16T

    JM{tel%H03<~dy_535!Tq|m*oa0gM;YyA!RH|92$GzIilOFARqh5`1tV)wHU9Bsc zt<`@4PoV#(%4+^#gN(IBxFiOJTG5qzr!?m>g~~Y|}Hj*h9bxuXfjjW9554>DE1brOx;jChLl0eTS8TxJ2RIXwP(UL)ziU!J+i-5pjLY3hDagTO*+@q~STgJTV$0n-P$ul*&otL-ir(nX> z#yW#|t$-F9%y|ibE}NW(0e>mWp>y_Jb`ATS%I=U;;q0?3pX_!h9~!7oy)azC1unX| zaRdh(+z<1Ht283^a1C)YkQioOaje5HujbQ&{|11QHaU+|ca`N(uTzOuyb%bjyFLC~ zeAkt@Mgv>3AH3k^zC=J&1#8q3ogIKdvI(zt3cit!bv(oEnD-eX%UaM`BIo;@N*Zvf z=%h`)Grr$rSNQv#%3nj}%ITpB?pUuwSr~tIzC!gD65_;2f|E^E=UpH5XguKncQ>x` zLOt7KAgBgz%3_20&q%GooJbBGDUtC#b_HP_+miK3XQ@2tRH?ijrwWy`iV!@4{)e2Z z58~g2oT~J&Tl2}7M{{V*quq7hrFjnf-6qo=6CUkh{J$9YXxX&HEtvNkTf%Pc`DMwW zj$#>qc55yj-YlcjHaYVGU`~|E>6A@QUA7#y2a_UT$f^7>^?tR#!A&Mnz=VoNriER{1byaNzaqtBsO?6oUC z>$WR4^*9w=pF>$T=;HRm6EGm$Kkn81KH<^$+BT-$CC#}^t%d3QsZu!|D$b;ziZc@+ zM>j`7jsv7LoA3?;vEjBTm;uqI5x1KCf}%R;_lR3VVYm9j!Bxij-vj_8`LQU2+Bar0 zkd9&*139uei;kiiCD{xF)j(TL$J&C{p*80#I0i6W!L<#PE0U!-{!s_5={!#RLt#3# z7G)$rP>l{$BL)(0O9G@+&gKSA-0xHjhHkhex1{~n6dtENSdd2F7o;11p)o3luU?A`Ul6RJ59qrsC%aX?V z*ZP`I;?etkLJECjNuib)2&#dF>eJHq*IfAZ`_h;k{94#B pu#ev`)oe*^Z?Pn+rSGk^{sK^Zz*|X}qIm!S002ovPDHLkV1i*Pl)C@` literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-32_altform-unplated.png b/windows/msix/assets/Square44x44Logo.targetsize-32_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..8d24ca99bf4616f077ea6cbef864fffd4b65e38e GIT binary patch literal 1851 zcmV-B2gLY^P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2GB`FK~z{rwU%p4 zTV)u>rytZ9{i4z62Te@$gK-)!F&Y@xLZR(xORwj&T*k&IYfGWDz*@kSGM(2ielnSt z#28I9ac)jHBM{h+nt<`YUEys5j9SzmXQ|jI>y9qH7IiqMe0wJ!n}JgTh;4z<8hZ+cnW_jh?4Q zf#!UA`om|SdB2ga)B(iAKxjKp^hObhLCZz4Q7Dyu|DQGE)d}Kuo@Q(Hba|Ve=6r?( z$W?&Un`j9jK}!^*$$D4}2$|A2|5}qZS{~(|snOA;T3rGp0uaA}wFMxk#-9x)qF3|T z5`&gc#enf~X}nw3m`BSa_*8WsO;_hJklz7FiV)ihG2p>UOkRbZ(hdP*b`QS$9P16T

    JM{tel%H03<~dy_535!Tq|m*oa0gM;YyA!RH|92$GzIilOFARqh5`1tV)wHU9Bsc zt<`@4PoV#(%4+^#gN(IBxFiOJTG5qzr!?m>g~~Y|}Hj*h9bxuXfjjW9554>DE1brOx;jChLl0eTS8TxJ2RIXwP(UL)ziU!J+i-5pjLY3hDagTO*+@q~STgJTV$0n-P$ul*&otL-ir(nX> z#yW#|t$-F9%y|ibE}NW(0e>mWp>y_Jb`ATS%I=U;;q0?3pX_!h9~!7oy)azC1unX| zaRdh(+z<1Ht283^a1C)YkQioOaje5HujbQ&{|11QHaU+|ca`N(uTzOuyb%bjyFLC~ zeAkt@Mgv>3AH3k^zC=J&1#8q3ogIKdvI(zt3cit!bv(oEnD-eX%UaM`BIo;@N*Zvf z=%h`)Grr$rSNQv#%3nj}%ITpB?pUuwSr~tIzC!gD65_;2f|E^E=UpH5XguKncQ>x` zLOt7KAgBgz%3_20&q%GooJbBGDUtC#b_HP_+miK3XQ@2tRH?ijrwWy`iV!@4{)e2Z z58~g2oT~J&Tl2}7M{{V*quq7hrFjnf-6qo=6CUkh{J$9YXxX&HEtvNkTf%Pc`DMwW zj$#>qc55yj-YlcjHaYVGU`~|E>6A@QUA7#y2a_UT$f^7>^?tR#!A&Mnz=VoNriER{1byaNzaqtBsO?6oUC z>$WR4^*9w=pF>$T=;HRm6EGm$Kkn81KH<^$+BT-$CC#}^t%d3QsZu!|D$b;ziZc@+ zM>j`7jsv7LoA3?;vEjBTm;uqI5x1KCf}%R;_lR3VVYm9j!Bxij-vj_8`LQU2+Bar0 zkd9&*139uei;kiiCD{xF)j(TL$J&C{p*80#I0i6W!L<#PE0U!-{!s_5={!#RLt#3# z7G)$rP>l{$BL)(0O9G@+&gKSA-0xHjhHkhex1{~n6dtENSdd2F7o;11p)o3luU?A`Ul6RJ59qrsC%aX?V z*ZP`I;?etkLJECjNuib)2&#dF>eJHq*IfAZ`_h;k{94#B pu#ev`)oe*^Z?Pn+rSGk^{sK^Zz*|X}qIm!S002ovPDHLkV1i*Pl)C@` literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-48.png b/windows/msix/assets/Square44x44Logo.targetsize-48.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed9c5195afbd1d096212c0e6b874946f756e2e3 GIT binary patch literal 2936 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 icjbz|*mwJNj{gI!+H_;#x#G$I0000 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-48_altform-lightunplated.png b/windows/msix/assets/Square44x44Logo.targetsize-48_altform-lightunplated.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed9c5195afbd1d096212c0e6b874946f756e2e3 GIT binary patch literal 2936 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 icjbz|*mwJNj{gI!+H_;#x#G$I0000 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Square44x44Logo.targetsize-48_altform-unplated.png b/windows/msix/assets/Square44x44Logo.targetsize-48_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed9c5195afbd1d096212c0e6b874946f756e2e3 GIT binary patch literal 2936 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 icjbz|*mwJNj{gI!+H_;#x#G$I0000 literal 0 HcmV?d00001 diff --git a/windows/msix/assets/StoreLogo.png b/windows/msix/assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..3516e565d7d0fc361f7d9ce4e78db3ee5945e12e GIT binary patch literal 3105 zcmV++4BqpJP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D3${r_K~!i%&6;^k z9OoIvNh`H#S|zTkD5@H%N+Y#Vq8?Iuq&66HEql+f2g@v%F^8Ew*kyNNIc%0CcH-oZ zrs^N9qE@YxNKuofi5)wM?bvaWIwuV zo6S+6O;Mn$0E$&iXf1d{2$-IbuXRu3N*$|(lqMUDWU9ePrW=i9rZEbW3`p2)A*kNf zAU7+tS)U^TW|e%+dlDCY1|A?+{01`7V3Yuv7J;O46M?9Qo-ZLn8`m$iTFd3@-t~xh z85@!suQ!l!zabu|F$N@7rzut)sejt6QUA1Y2T8!PPQLzKi-?cqNsEPCs>>sn>+>iO zh4C8}tCIjE_s{11Xt#T&5I`@Jfc0nc=iKoK`&eGsoKME;^2o)yJaVZ%1|(KT0(3q9 z;DyAx+k_D0S_E&-_vO#KV-fb~ct|ATW67A0r7+ikmXTW$|ICX(*oWYspfx147I5-s z-jNvc=y<%*u$LjDUN#O$Dz_zpmh%rb)aQyJxA%oW{?qbj-_{s(>3AeC>|w}=mmy&< zOGbS$pt?k$WOBQ%f1WL(O+g59F9}VipU88#EddZDFjT9L!gv4^t&Q*!A5m^g z_-9NAT7AT9{*FACZxsD59gidiYxU$pt)2{d5`k{rKT^4w<>O8V32>}DpIeSTmySmg z18yA|aO)F+sN5I|19?GKxBw!TTLRD$a-%>Pcb+W*&`zN(|JU-oZaVs$8XigXyL9Bd z3otq|=#IkR0sxZ0TMm1fxv-bL9PzT#kQ3wr8Oedc|X4BVOEd(*_LsC zUWf!Ra2l!P66AI><4%wp5`vtKq@>&@&-1zwa%y-a(CgGt7+jDPk_mg5S4P~1Wp`=8 zsr>F0zp-|z!7zyq742}#_$O8!fB;}&b3O%%^G_RhLnSV^jZh#LGTE?9q3Oc$m?!m+iac zWB(oT=4DFn`?4zg!7KH7dq^usD}fFt2g1M2ZZgkKHkb-YKzsj8gRyizP_TfiBs(q$ zL2gE9vu+ifg%3!dl@MoaN*-P5tX)mcyLIHOU3E_S@BKBpsu7R=GBl3Lp^KpbKpuF* z5ik3%lSOee)qR)i^0rJi7-uo6Kr(2()CYiQHXj~uV4srQpEBKO9EU8EjysFT1#9no zqcKbRxwtq}t>oc}FKj9jva4bEg)Y0w)8)`U-s8~x1#cAHtJkR|=VT25KgYwyeC*MX zQ~8K=-AJAO7n6SDmMi|e561n5!&8lhS7(|{X6ZeMi3a25g%%6-&a&gqRytYF2?5jZ zC##h__KnZ0mE;Vsq(EIZ73p@UDGV<7 zr`w^S9ug}etqv}9K1eR&WB)W(t66rQn(!N$=?3Fz>ZR)(7a%tgh&BSuY=MH`%GXRe zS*hUhRy(SdIm%@lZ zs1z#G?bPh*c4#WQc;)XxPUU0WHrZyI`! z$#BWz0@g|j6q6fTb5fA@as>~`oTyTelU2Fo z=++CEmf<1kxPvO8qL|%=Jj~+!hI>&792J%VlFJP;Ll>KCGA2r^y*!J@MtH1JL5^1{ zs8`^NGkk8n{9XhhBW*hSAyjT1NA(`A3f$9x(K>e!OJU`vEMEgBd zp2edAM=EltH;$BN$8CrwsuV0XNzv43#YhmFXs=VV(CyG{!zL)+f3!+_f4@ujcld

    Ld|IzQ# zogQ%MdWLHC`@&w%G>4q!{bEG_n8Xr)&;2*IWh}{h^A`mWg zsUC-Vy2q*Zhi&E`$e$yPK_|2Nf=B-$yo706>~Qb~-Culc`$Z3Pb7MR}I;wNY!Sz{D z7zxnf@@y(O_=f^jCI^DtIyOe7hPQgwuIdljRWEegHMyO3)z7;ex<`9zG*9)`XsY^Z zw7Uo0I;wy1{39OX!d_-5>}70H&)skwD9PZF(8udD$^X`8#sN{74KbMV90`y@A~(e~ zxyAegUjYc+s*_gK`%5x-yx|W^Gss7! znb&~IVnAYbBtUYxE#)7~Ze6x(Gh0{eE3KSIPdn6rTf4K*rT&dPubYnjMd>^eI#7~9 zJ}d!D2Kl%&3X>E_F1IE8BOiCf`3*;EwAVhT_H>_1d;5MJw6`doM?(9H*O3oOGNM3Y zbz(rtpFvaWQcV4Sl{b z_wM|+!cH!ghh*Nft|hyzYbi`pAW?1!Kv5W6fIyczQKgtTzERP#M>dY!(b#E8Az)F1Muqi2=b2@I`w?_A3WVG9HsZ=Z?o)`KdM}w5uSE?BdeMJKS3Gt~CZE zua3+=xKIT^9Nv)i$-xbo8S?e-TD)mV<&n_amQ=D6Fa>~#R%baNGyrs^Ps%d;KP}6= z_y0ZprZH8EF~U}6_ck9NDa zDE-(T>)Mt1M>S&n$MnY+L?1v_s0O5jD!gZ1JF>el-5E$pNj&tg#CXm0v~q_fb;tJn vH3Qr8*NpAt(oVfokhbMj-5*x$AD;am$Z&r3(FPBQ00000NkvXXu0mjfh*0La literal 0 HcmV?d00001 diff --git a/windows/msix/assets/Wide310x150Logo.png b/windows/msix/assets/Wide310x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..54e85f0df9d27221943e095d11485a3e52843202 GIT binary patch literal 11156 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 literal 0 HcmV?d00001