Skip to main content
When your app is ready to leave the chat panel, the Deploy & Share button at the top right of your project opens a dialog with several options. There’s also one more path — Expo Go — that lives in the preview panel itself, not in the dialog. Each option targets a different audience and surface.
The Deploy & Share dialog: Quick install, Release on App Store, and more ways to test & share
Generates a short public link anyone can open in a browser to preview your app. Recipients can also open the same link on their phone and scan a QR code to launch it in Expo Go for a near-native experience.
1

Click Deploy & Share → Share a link

A dialog opens where you can create and manage links.
The Deploy & Share dialog with Share a link highlighted
2

Create a link

Choose whether the link expires, then click Create link.
3

Copy the link

Click Copy next to the URL and share it however you like.
The share panel with card image options, the shareable link, click counter, and Stop sharing
The Active links section shows each link’s expiration and click count. To stop sharing, reopen the dialog and click Revoke for that link. Your own preview and other active links keep working.
When a recipient opens the share link on their phone, they’ll see a QR code that opens the app in Expo Go (a free app from the iOS App Store / Google Play Store). The browser preview works without Expo Go; the QR is just for a more app-like feel on phones.

Presentation mode

Opens the same preview that lives in your side panel as a full browser tab. Useful if You’re also looking to launch Your App as a website as well. This option only appears once a preview is available — if it’s missing from the dialog, your build hasn’t produced a preview yet.

Expo Go on your phone

Expo Go is a free app from the iOS App Store and Google Play Store that runs your Bilt app on your real phone over a tunnel — no Mac, no Xcode, no install command. The app loads in seconds and updates live as you change it in chat. It’s the fastest way to feel your app on a real device.
Expo Go is not in the Deploy & Share dialog. The QR code lives in the preview panel — the same panel that shows your in-browser preview.
The preview panel QR code that opens the app in Expo Go

First time: install Expo Go on your phone

  1. Open this link on your iPhone: Expo Go on the App Store.
  2. Tap Get to install.
  3. You don’t need to sign in — just having it installed is enough.

Open your app in Expo Go

1

Find the QR code in the preview panel

Look at the right panel of your project — below the preview, there’s a section labeled Scan to preview on mobile with a QR code.
2

Scan the QR code

On iPhone, open the built-in Camera app and point it at the QR code. A notification banner appears — tap it to open in Expo Go.On Android, open Expo Go itself and tap Scan QR code.
3

Wait for the bundle to load

The first load takes 10–30 seconds while Expo Go fetches the JavaScript bundle. Subsequent loads are nearly instant because most of the bundle is cached.

Sharing Expo Go with someone else

The QR code in the preview panel is yours alone. To let someone else preview on their phone, use Share a link instead — the share link page shows a QR code that anyone can scan to open in Expo Go.

Expo Go vs. Test on iPhone — which is right?

Expo Go

Seconds to load. Works on iPhone or Android. Updates live. Best for iteration and showing it off. Limited: some native APIs (push notifications, custom native modules) don’t work inside Expo Go.

Test on iPhone

Minutes to build. iPhone only, requires a Mac with Xcode. Real native binary, full APIs, your own app icon on the home screen. Best for pre-launch testing.

Expo Go troubleshooting

On iPhone, make sure the iOS Camera app’s “Scan QR Codes” feature is enabled (Settings → Camera → Scan QR Codes). On Android, scanning with the camera app won’t work — you have to scan from inside Expo Go.
Usually a JavaScript error in the latest build. Open your project in Bilt, look for build errors in the chat, and let the agent fix them. Once the next build succeeds, pull-to-refresh in Expo Go. These errors can also be caused by a cross-compatibility issue, ask the Bilt agent for further clarification if needed.
Some features can’t run inside Expo Go — push notifications, in-app purchases, deep links and custom native modules. To test these, use Test on iPhone or Publish.
The tunnel between your phone and Bilt’s preview server has dropped. Force-quit Expo Go, reopen the app from the QR code, and let it reconnect. If your phone and the preview are on different networks, that’s fine — Expo Go uses a public tunnel, not local Wi-Fi.

Test on iPhone

Builds your app natively and installs it directly on a connected iPhone via Xcode. This is closer to a real shipped app than Expo Go — full performance, full APIs, your own app icon — without going through the App Store.
Requires macOS with Xcode installed and an iPhone connected via USB. This won’t work from a Windows or Linux machine.
1

Click Deploy & Share → Test on iPhone

A dialog appears with a one-line install command. The command contains a temporary code that expires in 5 minutes.
The Test on iPhone option in the Deploy & Share dialog
The Build on your iPhone dialog with the one-line install command
2

Open Terminal on your Mac

Spotlight → “Terminal” or open it from Applications.
3

Paste the command and press Enter

The command looks like:
On first run, this installs the Bilt CLI to /usr/local/bin/bilt. On subsequent runs, it reuses the existing binary. The CLI then builds your project and pushes it to your connected iPhone.
4

Trust the developer profile on your iPhone

The first time you install a Bilt-built app on a given phone, iOS asks you to trust the developer. Open Settings → General → VPN & Device Management on the phone and tap Trust.
Each build uses a fresh 5-minute code. If you wait too long before pasting, regenerate by reopening the dialog.

Test on iPhone — troubleshooting

Codes are good for 5 minutes. Reopen Deploy & Share → Test on iPhone to generate a new one.
Xcode isn’t installed, or the command-line tools are missing. Install Xcode from the Mac App Store, open it once to accept the license, then run xcode-select --install.
Connect via USB, unlock the phone, and tap Trust This Computer when prompted. If you’ve connected before, open Finder → your iPhone in the sidebar to confirm Mac and phone see each other.
Sign in to Xcode with your Apple ID under Xcode → Settings → Accounts. The Bilt CLI uses your local Apple ID to sign the build for personal install — no Apple Developer subscription needed for this path.
The Test on iPhone path requires macOS with Xcode. Use Share link + Expo Go instead, or Publish when you’re ready to ship.

Publish

Two dialog options ship your app for real: Quick install publishes it to the web as an installable PWA (see the PWA guide), and Release on App Store opens the store publishing settings for App Store and Google Play builds — Bilt handles the cloud build, signing, and store package generation. For iOS, see the Publish to App Store guide for enrollment, signing, TestFlight, and App Store review. For Android, see the Publish to Google Play guide for Play Console setup, service accounts, signing, and release tracks.

Which option should I use?

Just want to show someone

Share link. Fastest path. They open it in a browser or scan the QR for Expo Go on their phone.

Testing on my own phone

Expo Go for fast iteration on iPhone or Android. Test on iPhone if you need real native APIs and have a Mac with Xcode.

Demoing to a room or screen-sharing

Presentation mode for maximum pixels and a website viewport of Your app

Ready for real users

Publish. Use the App Store guide for iOS and the Google Play guide for Android.

Where’s the Deploy & Share button on mobile?

On a phone, the button is at the top right of the project chat. The label collapses to just Share to save space — same dialog, same options.

Still can’t get your app onto a device?

If none of the options work, the underlying build may have failed. Check the chat for error messages, or see AI Chat for guidance on recovering from stuck builds.