The manifest the Store route needs, and a real package built from it. Packaging/Package.appxmanifest is a full-trust packagedClassicApp: EntryPoint Windows.FullTrustApplication, uap10:TrustLevel=mediumIL, uap10:RuntimeBehavior=packagedClassicApp, the rescap runFullTrust capability, and webcam + microphone DeviceCapabilities. That combination is what lets the packaged app launch the bundled ffmpeg as a child process and write to the user's profile; an appContainer package would virtualise the recordings folder instead. x64 only, en-US only (policy 10.7). Packaging/Assets/ carries the four tiles the packer requires, generated from the app's own Assets/llamacasty-logo.jpg by scripts/make-store-logos.py - listing art and app art cannot drift. scripts/package-msix.sh publishes Release win-x64 self-contained into artifacts/msix-stage (a RID-less publish would copy every RID's ONNX native), stages the manifest as AppxManifest.xml + Assets, and runs the Windows SDK's makeappx. MSIX_PFX/MSIX_PFX_PASSWORD sign a package for a local test install; the Store signs submissions. artifacts/ is gitignored. First real package: artifacts/LlamaCasty.msix, 159 MB, 509 files, 'Package creation succeeded'. Schema traps found by packing (makeappx reports one error at a time): Square310x310Logo and Wide310x150Logo are NOT uap:VisualElements attributes - they live on uap:DefaultTile. Guard: StorePackagingTests.The_package_manifest_declares_full_trust_camera_and_ microphone - identity/architecture, the full-trust application element, the three capabilities, no appContainer VALUE (not the file text: the manifest's own comment says the word), en-US only, and every referenced logo present. Full suite 438/438, 0 warnings. Cold-start smoke test after the Velopack removal: MainWindow loaded, no exceptions.
79 lines
3.1 KiB
XML
79 lines
3.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
LlamaCasty — Microsoft Store MSIX manifest (TASK 48).
|
|
|
|
Full trust is the whole point of this file: the app records to the user's profile,
|
|
launches the bundled ffmpeg as a CHILD PROCESS, opens an ordinary Win32 folder picker,
|
|
and drives WebView2. None of that works in an AppContainer, so this is a
|
|
packagedClassicApp at mediumIL with the runFullTrust restricted capability.
|
|
|
|
⛔ Do NOT change this to appContainer: recording silently starts writing to a
|
|
per-package virtualised folder and the output "vanishes" (TASK 48 item 6).
|
|
|
|
⚠️ Before submission, replace Publisher with the exact Publisher value Partner Center
|
|
shows for the account, and PublisherDisplayName with its display name — a mismatch is
|
|
a certification rejection. The version is bumped per submission.
|
|
-->
|
|
<Package
|
|
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
|
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
|
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
|
|
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
|
IgnorableNamespaces="uap uap10 rescap">
|
|
|
|
<Identity
|
|
Name="LlamaCasty"
|
|
Publisher="CN=LlamaCasty"
|
|
Version="1.0.0.0"
|
|
ProcessorArchitecture="x64" />
|
|
|
|
<Properties>
|
|
<DisplayName>LlamaCasty</DisplayName>
|
|
<PublisherDisplayName>LlamaCasty</PublisherDisplayName>
|
|
<Description>Live streaming to YouTube: scenes, sources, a webcam with background effects, alerts, chat and recording.</Description>
|
|
<Logo>Assets\StoreLogo.png</Logo>
|
|
</Properties>
|
|
|
|
<Dependencies>
|
|
<TargetDeviceFamily
|
|
Name="Windows.Desktop"
|
|
MinVersion="10.0.19041.0"
|
|
MaxVersionTested="10.0.26100.0" />
|
|
</Dependencies>
|
|
|
|
<!-- English only (Store policy 10.7): a second language here means the listing
|
|
description must be localised into it too. -->
|
|
<Resources>
|
|
<Resource Language="en-US" />
|
|
</Resources>
|
|
|
|
<Applications>
|
|
<Application
|
|
Id="LlamaCasty"
|
|
Executable="ytLive.exe"
|
|
EntryPoint="Windows.FullTrustApplication"
|
|
uap10:TrustLevel="mediumIL"
|
|
uap10:RuntimeBehavior="packagedClassicApp">
|
|
<uap:VisualElements
|
|
DisplayName="LlamaCasty"
|
|
Description="Live streaming to YouTube: scenes, sources, a webcam with background effects, alerts, chat and recording."
|
|
BackgroundColor="#171928"
|
|
Square150x150Logo="Assets\Square150x150Logo.png"
|
|
Square44x44Logo="Assets\Square44x44Logo.png">
|
|
<!-- The wide and 310 tiles live on DefaultTile, not on VisualElements — the
|
|
Windows 10 uap:VisualElements schema has no such attributes. -->
|
|
<uap:DefaultTile
|
|
Wide310x150Logo="Assets\Wide310x150Logo.png"
|
|
Square310x310Logo="Assets\Square310x310Logo.png" />
|
|
</uap:VisualElements>
|
|
</Application>
|
|
</Applications>
|
|
|
|
<Capabilities>
|
|
<rescap:Capability Name="runFullTrust" />
|
|
<DeviceCapability Name="webcam" />
|
|
<DeviceCapability Name="microphone" />
|
|
</Capabilities>
|
|
|
|
</Package>
|