26 lines
1.4 KiB
Markdown
26 lines
1.4 KiB
Markdown
# 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
|
|
|
|
```powershell
|
|
.\scripts\build_windows.ps1
|
|
```
|
|
|
|
The default interpreter is `.venv-build\Scripts\python.exe`; override it with `-Python C:\path\to\python.exe`.
|
|
|
|
## macOS
|
|
|
|
```bash
|
|
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.
|