Apple’s Simulator and Xcode only run on macOS. That is the whole reason iOS work seems to need a Mac: you need it to run, build, sign and ship the app. VibeView runs those Macs in the cloud. The machine on your desk can be a Windows laptop, a Linux workstation or a Chromebook. You still get an iPhone, iPad or Apple TV to tap through, a signed build and a TestFlight upload.

The same account covers Android, Android TV, Fire TV and Roku, so a team that ships to phones and TVs keeps one place for every platform.

What a Mac usually does, and what does it here

The jobWith VibeViewOn a Mac you would use
Run the app on an iPhone or Apple TV A live iOS or Apple TV simulator streamed to your browser. Tap, swipe, type and press the remote from your own keyboard. Simulator, from Xcode
Build it vibeview build --cloud builds on a cloud Mac, and the build lands in your app’s Build history, ready to run on a cloud device. Or push to GitHub and the GitHub App builds it. Xcode or xcodebuild
Sign a release Upload your certificate and profile, or let VibeView generate them through your App Store Connect API key. Android keystores can be generated too. Keychain Access, Xcode signing settings
Send it to testers vibeview submit uploads to TestFlight, adds the build to your groups, adds your What to Test notes and sends it to Beta App Review. You can add external testers by email. Xcode Organizer or Transporter, then App Store Connect
Everything that isn’t Apple Android, Android TV and Fire TV build and submit from the same CLI; Roku runs on a physical Roku in the same account. Android Studio, a shelf of TVs

An iOS and Apple TV simulator in your browser

Open a session and an iPhone, iPad or Apple TV simulator starts on a cloud Mac and streams to Chrome, Firefox, Safari or Edge. Upload a simulator build (a .app, zipped) or build one in the cloud, and it installs on the device. On Apple TV your arrow keys move the focus and Enter selects, like the remote.

If you work in React Native, live development points a cloud simulator at the Metro bundler on your own machine. Save a file and the change lands on the device, for your React Native app on iPhone or Apple TV, from Windows or Linux. You only rebuild when a native dependency changes. A coding agent can drive the same device: Claude Code, Codex or Cursor on a cloud iOS simulator shows how it installs the build and checks its own changes.

For a side-by-side look at every way to get an iOS simulator off a Mac, read iOS simulator on Windows: what actually works.

Cloud builds with signing

A cloud build packs your project, builds it on a managed toolchain and hands the result back. One vibeview.json holds a build for each platform: iOS, Apple TV, Android and Android TV. A development build runs on a cloud device; a production build is a signed .ipa, .aab or .apk for the stores.

Signing without Keychain Access

With an App Store Connect API key stored, one command creates the Apple Distribution certificate and App Store profile for iOS or tvOS and registers the bundle ID. No Apple ID password and no two-factor prompts.

React Native, Flutter, Capacitor and more

React Native, Expo, Flutter, Capacitor, Kotlin Multiplatform and native Swift or Objective-C projects build for iOS. Build a React Native iOS app without a Mac walks through one.

Build numbers that count up

Production builds can number themselves. With an App Store Connect key, the first one checks your app’s recent uploads and starts above the highest build number.

Builds from a push

The GitHub App builds your pushes and pull requests, and with version tags turned on, a tag makes a signed production build. Or run the CLI from your own CI.

Apple TV works the same way: build an Apple TV app without a Mac covers a react-native-tvos project from simulator build to TestFlight.

TestFlight upload and testers

Once a production build succeeds, vibeview submit --platform ios --latest uploads it to TestFlight, or choose Submit to TestFlight on the build’s page. VibeView then follows the build in App Store Connect until it reaches your testers: processing, export compliance (answered once per app), What to Test notes, your internal groups, Beta App Review and your external groups. The build’s card shows one plain state, and when something needs you, it says what and where. You get a notification when your testers have the build, and an email when it fails or needs you. Add --auto-submit to vibeview build --cloud --production and the build goes to TestFlight by itself as soon as it succeeds.

The step-by-step versions. Upload to TestFlight without a Mac covers the first upload from your terminal, and GitHub Actions to TestFlight, no Mac runner does it from ubuntu-latest on a version tag. Before you invite people outside your team, run the TestFlight external testing checklist.

New to the vocabulary? The store release glossary defines Beta App Review, export compliance, What to Test and the rest of the terms Apple and Google use.

Android, Android TV, Fire TV and Roku in the same account

Android and Android TV build on cloud Linux builders from the same vibeview.json. vibeview submit sends them to a Google Play track or to Amazon Appstore review. A Fire TV (Fire OS) app is an Android TV app in VibeView: it runs on an Android TV emulator and goes to the Amazon Appstore, which reaches Fire TV and Fire tablets (see submit a Fire TV app to the Amazon Appstore). Roku is a physical Roku streamed to your browser; you upload the channel zip. Store submission covers iOS, Apple TV, Android, Android TV and the Amazon Appstore.

What “without a Mac” can’t do

No Xcode on your desk. SwiftUI previews, Interface Builder, Instruments and the Xcode debugger are Mac apps. You edit in your own editor; the cloud builder runs xcodebuild for you.

No iPhone on a cable. You cannot plug in a physical iPhone and run a debug build on it. To try the app on your own device, send it through TestFlight and install it from the TestFlight app.

Simulators, not hardware. The devices are simulators and emulators. Camera capture, Bluetooth, NFC, cellular conditions and GPU performance need a pass on physical devices before you ship.

App Store review stays in App Store Connect. VibeView gets the build to TestFlight testers. Submitting for App Store review, phased release, the listing, screenshots, pricing and privacy labels are done in App Store Connect, in a browser.

Apple’s account, Apple’s rules. To sign and ship, you still need an Apple Developer Program membership and an App Store Connect API key, and the app’s record in App Store Connect before its first upload.

Where to start

  1. Sign up and open an iPhone or Apple TV session with one of the sample apps; no build needed to look around (getting started).
  2. Install the CLI (npm install -g vibeview). It needs Node.js 20 or later, which on a Chromebook means its Linux development environment. Then run vibeview build --cloud in your project to make a build that runs on the device (cloud builds).
  3. Store an App Store Connect API key and make a signed build with vibeview build --cloud --production (app signing).
  4. Send it to your testers with vibeview submit (store submission).