How to Upload Your App to the App Store Without a Mac
Guide · 6:01 videoChecked against the official sources
Sources checked 2 Nov 2026 · Published 2 Nov 2026 · Last reviewed 2 Nov 2026 · By Ctrl+Z Therapy (how we test)
The short answer
You don't need a Mac. Expo's docs say EAS Submit works on macOS, Linux and Windows, and its one command, npx testflight, creates your app record in App Store Connect, builds your app in the cloud and sends it to TestFlight. You still need a paid Apple Developer Program membership (99 USD a year), a real mobile app rather than a website in an app shell, and a test on a real iPhone before you submit.
Website or app?
- Apple's guideline 4.2: "Your app should include features, content, and UI that elevate it beyond a repackaged website."
- So a plain website in an app shell may be rejected. This guide is for real mobile apps, for example built with Expo.
The Apple Developer Program
- You need it to publish, and Expo needs it too: "A paid Apple Developer account is required to submit apps to the Apple App Store."
- To enroll, you need an Apple Account with two-factor authentication turned on, and you must be the legal age of majority in your region.
- As an individual, your personal legal name is listed as the seller on the App Store. Don't use a nickname: Apple says entering your legal name incorrectly will cause a delay in the approval of your enrollment.
- A company needs a legal entity and a D-U-N-S Number. Apple says D-U-N-S Numbers are free in most jurisdictions.
- The fee is 99 USD a year, in local currency where available. Individuals can pay at the time of enrollment; organizations pay after Apple Developer Support verifies their details and sends an email.
Your Expo app: the bundle identifier
- In app.json, add a bundle identifier under ios, for example "com.yourcompany.yourapp".
- Every build you upload is matched to your app by this bundle ID and the version number.
- Expo's free plan includes up to 15 iOS builds, in a low-priority queue.
One command: npx testflight
- Expo's docs: "EAS Submit works on macOS, Linux, and Windows, so you don't need a Mac to ship iOS builds."
- Run npx testflight in your project. Expo says it creates your app record in App Store Connect, builds your app in the cloud and sends it to TestFlight.
- It asks you to sign in with your Apple Developer account, to create the signing credentials. Our tip: type your Apple password only into the official sign-in, never into a chat.
- If it can't add the app: Apple says you can't add an app until the Account Holder signs the latest agreement in App Store Connect.
- When it's done, Apple processes the build and sends you an email.
- Prefer two steps? eas build --platform ios, then eas submit --platform ios.
TestFlight: test on a real iPhone
- Testers install the free TestFlight app, accept your invitation and install your app.
- Up to 100 internal testers get it right after processing. Up to 10,000 external testers get it after a Beta App Review.
- Each build can be tested for 90 days.
- You don't need a Mac, but Apple's guideline 2.1 says: "Make sure your app has been tested on-device for bugs and stability before you submit it."
Your store page
- You need at least one iPhone screenshot (iPhone with Dynamic Island, medium display), and you can upload up to 10. Images can't include transparency.
- A privacy policy link is required, and you describe what data your app collects.
- If people can create an account in your app, they must be able to delete it in the app too.
App Review
- Apple says it typically reviews at least 50% of submissions in less than 24 hours and 90% in less than 48 hours.
- Over 40% of unresolved issues are related to guideline 2.1, app completeness.
- If your app has a login, Apple asks you to "include demo account info (and turn on your back-end service!)". If your backend sleeps on a free plan, wake it up before you submit.
Four rejections that keep coming up
- 2.1 Incomplete: no demo account, a sleeping backend, or placeholder text.
- 4.2 Just a website in an app shell.
- 4.8 Social login only: also offer a login option that limits data collection to the user's name and email address and lets users keep their email address private.
- 5.1.1(v) No way to delete an account in the app.
Checklist
- Apple Developer Program, with your legal name.
- A bundle identifier in app.json.
- npx testflight: build and upload, no Mac.
- Test on a real iPhone with TestFlight.
- Screenshots and a privacy policy link.
- Account deletion inside the app.
- A demo account, and your backend awake.
Sources
- Expo: submit to the Apple App Store
- Expo: submit to app stores
- Expo: TestFlight
- Expo: managed credentials
- Expo: pricing
- Apple: program enrollment
- Apple: App Review Guidelines
- Apple: App Review
- Apple: add a new app
- Apple: upload builds
- Apple: TestFlight overview
- Apple: screenshot specifications
- Apple: app privacy details
- Apple: offering account deletion in your app
Checked on 2 Nov 2026. Prices, limits and settings change, so check the source before you rely on them.