Files
LlamaCasty/Packaging/Package.appxmanifest
T
gramps daac7689fd TASK 48 slice 2: the app packs as a Microsoft Store MSIX
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.
2026-10-22 09:05:50 -07:00

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>