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.

Questions

Can I keep using VS Code on Windows?
Yes. Move code with Git, or use VS Code’s Remote - SSH extension to edit the project on the Mac from your Windows editor.
Expo Go or a development build?
Expo Go is the fastest way to try an app on your iPhone. When you add custom native code, make a development build on the Mac with npx expo run:ios.
What if pod install fails?
Update CocoaPods with brew upgrade cocoapods, run pod repo update, then pod install again. You are the administrator, so you can set toolchain versions yourself.
How do I test on a real iPhone?
Use Expo Go during development, or upload a build to App Store Connect and install it with TestFlight.

Before you pay

Payment is handled by Stripe.

They show us how the site is used, including recordings of your visit; what you type stays hidden (PostHog, Google Analytics). These tools use cookies and start only if you say yes. You can change your mind at any time from the bottom of the page. If you say no to statistics, we only count your visit, without cookies. Cookie policy