Skip to content

Commit 553ac1c

Browse files
Document release build packaging requirements in CLAUDE.md
Always use packaging scripts instead of manually assembling app bundles. Incomplete bundles cause silent crashes on video drop in release mode. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d5482a9 commit 553ac1c

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

CLAUDE.md

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,9 @@ The Flutter app searches for the worker in these locations:
273273
- `worker/target/release/` (release build)
274274
- `worker/target/debug/` (debug build)
275275

276-
### Production Packaging
276+
### Production Packaging / Testing a Release Build
277+
278+
**IMPORTANT**: Never manually assemble a release build by copying the worker binary into the .app bundle. The app bundle requires a specific structure with templates, licenses, and correct binary placement. Always use the packaging scripts — the app will silently crash on video drop if the bundle is incomplete.
277279

278280
For release builds:
279281

@@ -283,9 +285,27 @@ For release builds:
283285
cargo build --release
284286
```
285287

286-
2. **Package with deps bundled** (Windows) or deps downloaded to Application Support (macOS)
288+
2. **Build Flutter app** (may require manual xcodebuild on macOS — see Build Commands above)
289+
290+
3. **Package using the script** (this copies worker, templates, licenses, and signs the bundle):
291+
```bash
292+
# macOS
293+
./Scripts/package-macos.sh --version X.Y.Z --skip-build # if already built
294+
./Scripts/package-macos.sh --version X.Y.Z # full build + package
295+
296+
# Windows
297+
.\Scripts\package-windows.ps1 -Version "X.Y.Z" [-SkipBuild]
298+
```
299+
300+
4. **Run the packaged app** (not the raw xcodebuild output):
301+
```bash
302+
# macOS
303+
open dist/VapourBox.app
304+
# or from terminal to see errors:
305+
dist/VapourBox.app/Contents/MacOS/vapourbox
306+
```
287307

288-
See the packaging scripts in `Scripts/` for details.
308+
Do NOT run `app/build/macos/Build/Products/Release/vapourbox.app` directly for testing — it lacks templates and proper bundle structure.
289309

290310
### Why Debug for Development?
291311

@@ -796,6 +816,7 @@ input.format.color_family != vs.YUV
796816
- Then build Runner for arm64 only: `xcodebuild -workspace Runner.xcworkspace -scheme Runner -configuration Release build ARCHS=arm64 ONLY_ACTIVE_ARCH=YES`
797817
- The Podfile is configured for arm64 only (`ENV['ARCHS'] = 'arm64'`), so multi-arch builds will fail
798818
13. **macOS CocoaPods warnings about base configuration**: These warnings can be ignored - the build will work despite them. The xcconfig includes are handled by Flutter.
819+
14. **App crashes silently on video drop (release build)**: The app bundle is likely incomplete. Never manually copy just the worker binary — always use `Scripts/package-macos.sh` or `Scripts/package-windows.ps1` to create a proper bundle with templates, licenses, and correct structure. Release mode swallows exceptions silently, so run from the terminal (`dist/VapourBox.app/Contents/MacOS/vapourbox`) to see any output.
799820

800821
## Windows-Specific Notes
801822

0 commit comments

Comments
 (0)