Files
zyt/app/packaging/README.md
T
2026-08-10 17:29:05 +08:00

1.4 KiB

Video-enabled desktop packaging

The spec creates an onedir build and embeds video_companion/dist as video_companion_dist. Explicit QtWebEngine imports activate PyInstaller's maintained PySide6 hooks; the build scripts then fail if the resulting artifact does not contain QtWebEngineProcess or Chromium .pak resources.

Both build scripts also launch the frozen entry point with --smoke-test. The smoke process uses a temporary user/config directory, demo mode, loopback-only proxy settings, and a 30-second deadline; a non-zero exit or an unhandled exception in its logs fails the build. This validates the packaged bootstrap without contacting a real backend.

Run the build on the target operating system. PyInstaller cannot cross-build Windows and macOS artifacts.

Windows

.\scripts\build_windows.ps1

The default interpreter is .venv-build\Scripts\python.exe; override it with -Python C:\path\to\python.exe.

macOS

bash ./scripts/build_macos.sh

The default interpreter is .venv-build/bin/python. For release signing, export MACOS_CODESIGN_IDENTITY before building. The generated app includes camera/microphone usage descriptions and the main-process entitlements in macos/entitlements.plist.

Before notarization, verify the nested QtWebEngineProcess.app signature and preserve its Qt-provided helper entitlements. Sign nested code before the outer app, then notarize and staple the final distribution artifact.