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 job | With VibeView | On 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
- Sign up and open an iPhone or Apple TV session with one of the sample apps; no build needed to look around (getting started).
-
Install the CLI (
npm install -g vibeview). It needs Node.js 20 or later, which on a Chromebook means its Linux development environment. Then runvibeview build --cloudin your project to make a build that runs on the device (cloud builds). -
Store an App Store Connect API key and make a signed build with
vibeview build --cloud --production(app signing). -
Send it to your testers with
vibeview submit(store submission).
Updated 26 October 2026