Prerequisites
All platforms require these core dependencies:Rust
Install the Rust toolchain using rustup
CMake
Build system and C++ compiler required
Basic build commands
Once dependencies are installed, use these commands to build and test:Platform-specific requirements
Linux
Linux
Linux builds require additional system libraries for GUI rendering and device communication.Some distributions (like Bazzite) may need you to run:This ensures
Ubuntu/Debian
Fedora/RHEL
Runtime requirements
On Linux,
usbmuxd must be installed on your system. It comes with most popular distributions by default.Due to some distributions’ udev rules, usbmuxd may stop running after no devices are connected. You can mitigate this by plugging your phone in first, then restarting the app.usbmuxd can detect devices properly.Building AppImage
For distribution, you can build an AppImage:macOS
macOS
macOS builds require Apple development tools.
Requirements
Install one of the following:- Xcode (full IDE)
- Command Line Tools (lightweight option)
Building universal binaries
To create a universal binary (Apple Silicon + Intel):Creating DMG installer
The macOS-specific
plume_gestalt crate provides wrapper functionality for libMobileGestalt.dylib, used to obtain your Mac’s UDID for Apple Silicon sideloading.Windows
Windows
Windows builds require Visual Studio build tools.
Requirements
Install both:- Visual Studio 2022 Build Tools
- Windows 10/11 SDK
Cross-compilation from Linux
You can cross-compile for Windows from Linux:Creating installer
On Windows, you can create an NSIS installer:GitHub Actions reference
The best reference for building on any platform is the GitHub Actions workflow at.github/workflows/build.yml. This file contains:
- Complete build steps for all platforms
- Cross-compilation configurations
- Packaging and distribution steps
- Code signing and notarization (macOS)
- AppImage generation (Linux)
- NSIS installer creation (Windows)