React Native iOS development from a Windows PC
Write JavaScript or TypeScript on your PC and use a rented Mac mini for the iOS build, the Simulator and the upload.
What runs where
In a React Native project, your JavaScript or TypeScript, the Metro bundler and most of your tooling run happily on Windows. The ios folder holds a native Xcode project, and that part is built on macOS: compiling the app, running it in the Simulator, signing it and uploading it.
A rented Mac mini M6 gives you that macOS side whenever you need it. Write features on your PC, push to Git, and pull on the Mac to build for iOS. Expo projects follow the same pattern, with a few extra options covered below.
Preparing the Mac
Install Xcode from the App Store with your own Apple Account and open it once so it can install its components. Then use Homebrew for the rest: brew install node for Node.js, brew install watchman for faster file watching and brew install cocoapods for the native dependencies. If your project pins a Node version, nvm or fnm take care of that.
Clone your repository, run npm install or yarn, then run pod install inside the ios folder to fetch the native pods. On a weekly or monthly rental all of this stays installed, so the next session starts with a git pull and a quick pod install when dependencies change.
Running in the Simulator
From the project folder, npx react-native run-ios builds the app, starts the Simulator and launches Metro. Fast Refresh updates the screen as you save, and Command+D in the Simulator opens the developer menu, where you can start React Native DevTools for breakpoints, the console and the component tree.
Use the Simulator to check what differs on iOS: safe areas, keyboard behaviour, navigation gestures, permission prompts and native modules with iOS-specific code. You can also keep editing in VS Code on Windows through Remote - SSH, so every save shows up in the Simulator straight away.
Expo projects
With Expo, start quickly with Expo Go: install it on your iPhone from the App Store, run npx expo start and scan the QR code. When your app needs custom native code, create a development build with npx expo run:ios, which generates the ios folder and builds it for the Simulator on the Mac.
For release builds, EAS Build can compile in Expo’s cloud, and with a Mac of your own you can also run eas build --platform ios --local to build on the Mac mini M6 itself. That keeps signing credentials and build logs on your machine and gives you a fast, repeatable build whenever you need one.
Release build and upload
Open the .xcworkspace file in the ios folder with Xcode. In Signing & Capabilities, pick your Apple Developer team, set the bundle identifier and keep automatic signing on. Raise the version and build number, then choose Product > Archive to create a release build with the JavaScript bundle included.
In the Organizer, validate the archive and upload it to App Store Connect. Once processed, the build shows up in TestFlight for you and your testers. When it is ready, attach it to your App Store listing and submit it for review; the 24-hour pass comes with a guide that walks through every screen.
Plans for React Native teams
For an occasional release, the 24-hour pass costs $19. For a week of iOS work, such as integrating a native module or fixing platform bugs before launch, the 7-day pass costs $49. If someone on the team builds for iOS every day, the monthly plan at $112 keeps the Mac ready with Node, pods and caches in place.
Every plan includes remote desktop, SSH, full admin rights and support by email. Passes can be extended on the same Mac, and prices are VAT included where it applies.