Docs

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-essential and 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, so every doctor asks 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 your PATH. See Building for Android.

Desktop builds are macOS-only today.

Run the doctor

Terminal bash
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.

Output text
โ†’ 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 build compiles 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.

Rails ยท Hanami ยท Sinatra โ€” built with Ruby