Black Friday30% off your first month. See prices →
VibeView

Claude Code · Build and ship

Claude Code mobile app: preview, build and submit it

Rokas Kašinskas — Co-founder, VibeViewPublished 2026-10-29Updated 2026-10-29

You asked Claude Code for an app, and now you have a folder full of code. How do you see it running? How do you build the version that goes to a phone? How does it reach TestFlight or Google Play?

This guide walks through that path, from the first look to the store upload. The examples use a React Native or Expo app. The same steps work for Flutter, Capacitor, Kotlin Multiplatform and native Xcode or Gradle projects; only the live reload part is specific to React Native.

What Claude Code does, and what it leaves to you

Claude Code is “an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools” (Anthropic overview, checked October 29, 2026). The app it writes is ordinary source code in your repository. You own it, and any build tool can compile it.

Getting the app to a store is a separate job. Claude Code’s documentation doesn’t mention TestFlight, App Store Connect, Google Play or an Android emulator (we searched the full docs text on October 29, 2026). VibeView covers those steps:

StepClaude Code aloneWith VibeView
Write the appYesYes, unchanged
See it on an iPhone or iPadOn a Mac: Desktop’s simulator pane (beta), or computer use from the CLIIn your browser, from Windows, Linux or a Mac
See it on Android, Apple TV, Android TV or RokuNot in its docsLive devices, driven by Claude
Send a running copy to someoneNot in its docsA share link that plays the app in the browser
Build the signed store fileNot in its docsvibeview build --cloud --production
Upload to TestFlight or Google PlayNot in its docsvibeview submit

Working on a Mac

Claude Code Desktop has an iOS Simulator pane, in public beta on macOS for paid Claude plans (checked October 29, 2026). It shows simulated iPhones and iPads next to the conversation, and Claude taps through your app while you watch. It needs Xcode, it works in local sessions only, and it can’t control a physical device. The same page says that from the CLI, Claude reaches the simulator through computer use instead. If you work on a Mac and only target iPhone and iPad, the pane is a good way to check your work.

The rest of this page covers what the pane doesn’t: working without a Mac, Android and TV, sharing a running copy, and the store upload. For a side-by-side look at the pane and VibeView’s devices, read Claude Code iOS simulator on Windows or Linux.

What you need

  • A VibeView account. See pricing for streaming minutes and the build minutes each plan includes.
  • Node.js 20 or later, on the machine where Claude Code runs.
  • Your project in a git repository. A cloud build uploads every file git tracks, plus new files your .gitignore doesn’t exclude. That’s why the CLI needs a repository. If Claude Code started the project in a plain folder, ask it to run git init and add a .gitignore that keeps secrets such as .env files and keystores out. A first commit is optional.
  • For the store step only: an Apple Developer account, a Google Play developer account, or both.

From code to a store upload

  1. Install the CLI and sign in. Run these yourself, not through Claude, because signing in happens in your browser:

    npm install -g vibeview
    vibeview login

    vibeview login prints a sign-in link and tries to open your browser. If no browser opens, for example on a remote Linux machine, open the printed link on any device. You have two minutes to approve it, then the CLI saves your login.

  2. Connect Claude Code. Run one command to install the vibeview-agent skill, a set of instructions that teaches Claude Code the VibeView commands. It also offers to register the MCP server, the standard way agents plug in outside tools:

    vibeview agent-setup

    If Claude Code may run shell commands, you don’t need the MCP server. To share the skill with your team, add --project: it goes into your repository’s .claude/skills/. Or install the Claude Code plugin, which adds both the skill and the MCP server:

    /plugin marketplace add vibeview/skills
    /plugin install vibeview@vibeview
  3. Ask Claude to set up cloud builds. A prompt such as “set up VibeView cloud builds for every platform this app targets” is enough. Claude adds a development build profile to vibeview.json for each platform. For a React Native or Expo project it adds a preview profile too: a release build with the JavaScript bundled in, so it runs on its own. Then it starts the builds:

    vibeview build --cloud --platform ios
    vibeview build --cloud --platform android

    Each build runs on a fresh machine in the cloud, so the iOS one needs no Mac on your side. Builds are billed by the minute, and the skill tells Claude to ask you before starting one. A ready-made version of this prompt is on the Builds page under Get the prompt.

  4. Look at the app on a live device. For your React Native app, ask Claude to run it live. Claude starts a session in the background:

    vibeview dev --detach --json

    Ask Claude for the device link in the output, and open it in your browser. The device loads your JavaScript from Metro, your React Native app’s dev server, on the machine where Claude Code runs. A saved change shows up in about a second, with no rebuild. Claude can then read what’s on screen, tap and type, and check the app’s logs (vibeview ui-tree, vibeview logs). You can tap the same device yourself at any time.

    For a Flutter, Capacitor or native app, each change means a new build. Claude starts a build, then opens it on a device when it’s ready, using the app_build_id the build reports:

    vibeview dev --standalone --platform ios --build <app_build_id> --detach --json

    Ask Claude to stop the session with vibeview dev-stop when it’s done, because a running session uses streaming minutes.

  5. Send a running copy to someone. A React Native development build loads its JavaScript from your computer, so it won’t open for anyone else. Build the preview profile instead, which runs on its own:

    vibeview build --cloud --platform ios --profile preview

    Flutter, Capacitor and native development builds already run on their own, so share those as they are. Then open Sharing in the dashboard, click Share an app and pick the app. Whoever opens the link uses the app on a live device in their browser, with nothing to install and no sign-in unless you turn that on. Their sessions use your plan’s streaming minutes. See Sharing your app.

  6. Build for the store and upload. Do these once first: add your App Store Connect API key or Google Play service account key in Builds → Stores, and create the app in App Store Connect or Play Console (why). Then build and upload in one command:

    vibeview build --cloud --production --platform ios --auto-submit

    The first time, the CLI asks for your release build command and its output file, and saves them as the production profile. VibeView can create your iOS certificate and provisioning profile from an App Store Connect API key, and it can generate an Android keystore for Google Play. See App signing. With --auto-submit, the build goes to its store as soon as it succeeds.

    To upload a build you already have, run vibeview submit. Claude runs store commands only when you ask it to.

Steps only Apple and Google can do

VibeView uploads the build to the store. A few steps are done only in Apple’s and Google’s own consoles:

  • Create the app record first. Apple accepts uploads only for an app that already exists in App Store Connect. Google’s API can update an app but can’t create one, so create it in Play Console before the first upload.
  • App Store review starts in App Store Connect. vibeview submit puts the build in TestFlight. Choosing it for a version and sending it for review happens in App Store Connect.
  • Store listings, screenshots, pricing and privacy labels stay in each store’s console.

The store submission docs list each of these with where to find it.

Building for Android and TV

The steps are the same on every platform. Pass --platform android, --platform tvos or --platform androidtv to vibeview build --cloud and vibeview dev. Your project must target the platform first: Flutter, for example, doesn’t support Apple TV. Production builds and vibeview submit work for all four; Apple TV builds go to TestFlight, and Android TV builds go to a Google Play track.

On a TV, Claude moves focus with the remote instead of tapping. How an agent shipped an Apple TV and Android TV app shows a full run. Roku channels skip the cloud build, because a channel is just a zip of source files, and VibeView doesn’t upload them to the Roku Channel Store. Claude drives the channel on a physical Roku; the Claude Code Roku guide covers packaging and reloading it.

Keep what Claude checked as a test

When Claude has walked through a flow that matters, such as sign-up or checkout, it can save that flow as a test that uses AI testing (beta): over MCP with create_test and run_test, or from a shell with vibeview create-test. For a ready prompt that covers your main flows, open Create test on the Tests page and use Write tests with your coding agent at the bottom. A test’s runs spend usage credit, so the prompt asks Claude not to retry a failed test more than once without asking you. See Coding agent prompts.

For a complete example of this path, read how an agent checked an Expo app on cloud phones and shipped it to TestFlight.

Frequently asked questions

Can Claude Code publish my app to the App Store? Not by itself. Its documentation doesn’t cover signed store builds or uploads. With VibeView, the submit command uploads your build to TestFlight, and you then send it for App Store review in App Store Connect.

Do I need a Mac to build the iOS version? No. VibeView builds the iOS version on a cloud machine, and you can start the build from Windows or Linux. For the signed build that goes to TestFlight, you still need an Apple Developer account.

Can I see the Android version while Claude works on it? Yes. Ask Claude to open an Android device instead of an iPhone. You watch it in your browser in the same way, while Claude taps and types.

Can I send the app to a client before it’s in TestFlight? Yes. Make a build that runs on its own, then create a share link in the dashboard. Your client opens the link and uses the app on a live device in the browser, with nothing to install.

Does this work with an app Claude Code didn’t write? Yes. Nothing on this page depends on who wrote the code. Any project in a git repository with a build command works the same way.

Try it yourself

Open a live iOS simulator, Android emulator, Apple TV, Android TV or Roku in your browser.

Start free