Deploy to a device

waid build produces the app but never installs it. waid deploy builds it if needed, syncs an ICE candidate, then installs and launches it on a connected iOS or Android device. It requires a usable ICE session. macOS apps use waid build --target macos.

bash
waid deploy --target android # auto-pick the connected device
waid deploy --target ios # auto-pick the connected iPhone
waid deploy --target ios --no-launch # install only, don't launch
FlagWhat it does
--target <ios|android>Which device platform to deploy to. Required.
--src <dir>Your project (defaults to the current directory).
--mode <name>Vite mode; defaults to development.
--tenant <key>Tenant for the ICE candidate.
--no-launchInstall without launching.
--android-serial <serial>Target a specific Android device.
--ios-device-udid <udid>Target a specific iPhone.
--skip-ice-registrationInstall without registration; device SSO is off. The CLI still requires a usable session.

For an iOS device deploy, waid deploy asks once for your signing details (bundle id / team) and saves them into waid.config.json.

bash
waid deploy --target android --src ./my-app
waid deploy --target ios --ios-device-udid 00008120-000...

Use waid devices --target ios or waid devices --target android to list devices. Candidate sync, ICE publication, and tenant installation are separate operations.