Requirements
Building native apps on your own machine needs a working native toolchain.
every doctor checks all of it and names what is missing. Here is what it looks
for.
The checklist
- Ruby 3.2+ and a Rails, Hanami, or Sinatra app.
- Rust and Cargo. The desktop shell is a Tauri app, which builds with Cargo.
- A C/C++ toolchain. Xcode Command Line Tools on macOS
(
xcode-select --install);build-essentialand friends on Linux. - rbe-tebako, our maintained fork of Tebako, which presses your app and the Ruby runtime into one binary. It ships as a dependency of the gem.
- Homebrew bison on macOS. The system one is far too old for tebako's build,
and Homebrew keeps its own off your
PATH, soevery doctorasks brew directly. - Full Xcode, not just the Command Line Tools, for iOS builds. See Building for iOS.
- Android Studio for Android builds. It provisions the SDK,
adb, the emulator and a JDK together, and nothing needs to go on yourPATH. See Building for Android.
Desktop builds are macOS-only today.
Run the doctor
cd my_app
every doctor
Every section always prints, so one run answers "what can this machine build?".
Only the sections your build.targets name can fail the run; the rest are
marked informational.
โ Desktop target
โ rbe-tebako installed
โ cargo installed
โ homebrew bison
โ iOS target (not in build.targets, informational)
โ full Xcode selected
โ iOS Simulator SDK
โ Simulator runtime matches the iOS SDK (xcodebuild -downloadPlatform iOS)
โ bundled iOS shell template
โ Android target (not in build.targets, informational)
โ Android SDK (~/Library/Android/sdk)
โ JDK 17+ (found 17)
โ Android SDK command-line tools (~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager)
โ adb (~/Library/Android/sdk/platform-tools/adb)
โ emulator (~/Library/Android/sdk/emulator/emulator)
โ an Android virtual device (Medium_Phone_API_35)
โ platforms;android-36 (have android-35, android-36)
โ bundled Android shell template
โ ready to build
Every โ comes with the one command that fixes it. Re-run until it is green
before moving on. To require a toolchain your build.targets do not yet name,
pass the target: every doctor --target ios-arm64.
The first build is the slow one. Your first
every buildcompiles the whole rbe-tebako toolchain, which takes 30 to 90 minutes. Later builds take a few minutes. To skip the local toolchain, the Platform builds on hosted runners.
Next: your first build.