Prerequisites
Get and run the desktop
pnpm dev:desktop prepares the development icons, then compiles and runs vibex-desktop in debug mode. The first compile takes a while.
To check only the Rust side, skip the frontend:
Package the desktop
On Linux, use cargo-packager with the PDFium runtime reviewed alongside the repository:docs/operations/release.md in the repository.
Build for Android
You need the Android SDK/NDK,cargo-ndk, and the Rust target for each target ABI. Debug builds arm64-v8a and x86_64 by default; Release builds only arm64-v8a.
VIBEX_MOBILE_ANDROID_TARGETS (space-separated) to override the Debug ABI list. A local pnpm package:mobile:android produces an unsigned Release APK, which you must align and sign yourself before distributing. A tagged GitHub Release is signed automatically by the release pipeline.
Build for iOS
You need macOS, Xcode, XcodeGen, and theaarch64-apple-ios and aarch64-apple-ios-sim Rust targets.
VibexFFI.xcframework and generates an Xcode project. Code signing, device or simulator selection, and distribution credentials are all managed by your local environment. Never commit certificates or provisioning profiles.
Run Relay and the server locally
Checks before you commit
pnpm check bundles the Rust quality checks, frontend type and lint checks, license checks, and UI layering and visual baseline checks. pnpm release:build-smoke validates the build graph for the desktop, mobile, and Relay. For the complete command list, see Build and test.