App Store

    How to Upload IPA File to App Store Connect Without Mac

    A Windows developer uploading an iOS IPA to App Store Connect through a cloud build service using an App Store Connect API key, without a Mac.

    You can upload an IPA to App Store Connect without owning a Mac by using a cloud build service that also submits your app, such as Expo EAS, Codemagic, Bitrise, or a continuous integration pipeline with hosted macOS runners, since those build the iOS app on a Mac in the cloud and upload it for you. The catch is that building an iOS app requires macOS somewhere, so without a Mac you rely on a cloud Mac rather than avoiding one entirely. Apple's Transporter, the desktop upload app, is Mac-only, so the alternatives for uploading without a Mac are Expo EAS submit, Fastlane running in a pipeline, a cloud service's upload step, or the App Store Connect API directly. The key enabler is an App Store Connect API key, which authenticates uploads from any platform.

    Short answer

    Use a cloud service that builds and uploads for you, since building iOS needs macOS and Transporter is Mac-only. Per the Expo EAS documentation, eas submit uploads your iOS build to App Store Connect from any platform, and eas build produces it in the cloud without a Mac. Per the Fastlane documentation, deliver and pilot upload builds, authenticated by an App Store Connect API key rather than an interactive Apple login. Per Apple's App Store Connect API, uploads can be authenticated programmatically with a key. The API key is what lets you upload from Windows or Linux.

    The catch: building iOS needs a Mac somewhere

    Before choosing an upload method, understand the real constraint: compiling an iOS app requires macOS and Xcode, so you cannot build an IPA on Windows or Linux natively. When people ask how to upload without a Mac, the deeper need is usually to ship an iOS app without owning a Mac, which means the build itself has to happen on a Mac somewhere, just not one you own. Cloud services solve this by running the build on hosted macOS machines.

    So the practical answer is not to avoid a Mac entirely but to use a cloud Mac. Services like Expo EAS build in Apple-hosted or provider-hosted macOS environments, and continuous integration providers offer hosted macOS runners that compile and package your app. Because these same services can also upload the resulting build, you never touch a physical Mac: the build and the upload both happen in the cloud. This reframes the question from uploading a mysteriously-produced IPA to choosing a cloud pipeline that builds and submits for you.

    Transporter alternatives without a Mac

    Apple's Transporter app, the usual way to upload a build by hand, runs only on Mac and iPad, so it is not an option without one, and the alternatives are the cloud and command-line paths. The main alternatives are Expo EAS submit for Expo and React Native apps, a cloud build provider's built-in upload step such as Codemagic or Bitrise, Fastlane running in a pipeline, and the App Store Connect API used directly by a script. Each of these can send a build to App Store Connect without the desktop Transporter app.

    What these alternatives share is that they authenticate with an App Store Connect API key rather than requiring you to sign in through a Mac app. That key is what makes cross-platform upload possible, because it lets a script or service prove it is allowed to upload without an interactive login on macOS. So the way to replace Transporter without a Mac is to pick one of these, provide it your App Store Connect API key, and let it perform the upload, whether as part of a build pipeline that produced the IPA or as a standalone submit step for a build produced elsewhere in the cloud.

    Expo EAS: build and submit in the cloud

    For Expo and React Native apps, Expo EAS is the most direct no-Mac path, because it both builds and submits in the cloud. The eas build command compiles your iOS app on Expo's hosted macOS infrastructure, producing a signed IPA without you needing a Mac, and it manages the signing credentials for you. Then the eas submit command uploads that build to App Store Connect, so the entire path from source to App Store Connect happens in the cloud from your Windows or Linux machine.

    This is why EAS is popular with developers who do not own a Mac: the two commands cover building and uploading, and EAS handles the distribution certificate and provisioning profile so you do not manage them by hand. You authenticate submission with your App Store Connect API key, which EAS uses to upload. If you are on Expo or React Native, running eas build for iOS followed by eas submit is often the simplest complete answer to shipping without a Mac, since neither step requires a local macOS environment.

    Fastlane: upload from a pipeline

    Fastlane is the other common tool, used to upload a build to App Store Connect and TestFlight from a pipeline, and it works without a Mac when run in a cloud macOS environment or authenticated through the API. Fastlane's deliver, or upload_to_app_store, sends a build for App Store review, and pilot, or upload_to_testflight, sends it to TestFlight, both authenticated by an App Store Connect API key so no interactive Apple login is required. This makes Fastlane suitable for continuous integration where a person is not present to sign in.

    The nuance is where Fastlane runs. Building the app with Fastlane still requires macOS, so in a no-Mac setup Fastlane runs on a hosted macOS runner that builds and then uploads in the same job, or a separate upload step uses the API key to submit a build produced elsewhere. Using Fastlane match alongside it manages your certificates and profiles across the pipeline. So Fastlane fits the no-Mac model by living in a cloud pipeline, where it handles signing and upload with your API key rather than on a machine you own.

    Certificates, profiles, and the App Store Connect API key

    Uploading without a Mac still requires the same signing pieces, and the App Store Connect API key is the one that makes cross-platform upload work. To build and upload for iOS you need an Apple Distribution certificate and an App Store provisioning profile, which your cloud service or Fastlane match can generate and manage for you, so you do not have to create them on a Mac by hand. These are what sign the build; they are handled within the cloud pipeline.

    The App Store Connect API key is separate and is what authenticates the upload itself. It is a key you create in App Store Connect, consisting of a Key ID, an Issuer ID, and a downloadable private key file, and because it authenticates programmatically, it works from any operating system, which is exactly why it enables uploading without a Mac. You provide this key to EAS, Fastlane, or your API script, and it proves the upload is authorized without a Mac app or an interactive login. So the credentials split into signing assets, managed by the cloud service, and the API key, which you supply to authorize the upload from anywhere.

    Upload methods compared

    Comparing the methods clarifies which fits a no-Mac workflow. The table below sets them side by side.

    MethodNeeds a Mac you own?What it does
    Transporter appYes, Mac-onlyNot usable without a Mac
    Expo EASNoBuilds in the cloud and submits
    Codemagic, Bitrise, or CINoCloud macOS build plus an upload step
    Fastlane in a pipelineNo, runs on a cloud MacUploads with an API key
    App Store Connect APINoProgrammatic upload from any OS

    Read the table by ownership: every method except the Transporter app avoids a Mac you own by using a cloud Mac or the API, authenticated with an App Store Connect API key.

    Setup checklist

    Working through these steps ships a build without a Mac. The checklist below covers them.

    StepActionDone?
    Choose a cloud buildEAS, Codemagic, Bitrise, or CI macOS runners[ ]
    Set up signingDistribution certificate and App Store profile, managed by the service[ ]
    Create an API keyAn App Store Connect API key for authentication[ ]
    Build in the cloudProduce a signed IPA on a hosted Mac[ ]
    Submit or uploadUse EAS submit, Fastlane, or a CI upload step[ ]
    Confirm in App Store ConnectThe build appears and processes[ ]

    The step that makes it all possible is the API key, since it authenticates the upload from any operating system, which is what lets you submit without a Mac.

    Verify the build before you upload

    Because your build is produced in the cloud and you may never inspect it locally, checking it before you upload is worthwhile, and it can be done from any platform since a build scanner is a service you submit the IPA to.

    A scanner like PTKD.com analyzes your build and reports issues such as leaked keys and secrets, over-broad permissions, and insecure data handling by severity, mapped to OWASP MASVS, so the cloud-built IPA you are about to upload is checked for security problems from your Windows or Linux machine. To be clear about the boundary: PTKD does not build or upload your app, which your cloud service handles. It checks the build itself, so the version you submit to App Store Connect is one you have verified even without a Mac to inspect it.

    What to take away

    • You cannot build an iOS IPA without a Mac, but you can avoid owning one by using a cloud Mac through Expo EAS, Codemagic, Bitrise, or CI macOS runners that build and upload for you.
    • Apple's Transporter app is Mac-only, so the alternatives without a Mac are EAS submit, a cloud provider's upload step, Fastlane in a pipeline, or the App Store Connect API directly.
    • For Expo and React Native, eas build followed by eas submit builds and uploads entirely in the cloud, managing signing for you.
    • The App Store Connect API key is the enabler, because it authenticates uploads programmatically from any operating system, unlike a Mac app that needs an interactive login.
    • Let the service manage your certificate and profile, submit with your API key, and verify the cloud-built IPA with a tool like PTKD.com before uploading.
    • #upload ipa
    • #without mac
    • #expo eas
    • #fastlane
    • #app store connect

    Frequently asked questions

    Can I upload an IPA to App Store Connect without a Mac?
    Yes, by using a cloud build service that also submits your app, such as Expo EAS, Codemagic, Bitrise, or a CI pipeline with hosted macOS runners, which build the iOS app on a Mac in the cloud and upload it for you. The catch is that compiling iOS requires macOS, so you cannot build an IPA natively on Windows or Linux; you rely on a cloud Mac rather than avoiding one entirely. Apple's Transporter app is Mac-only, so these cloud paths are the alternatives.
    What are the Transporter alternatives without a Mac?
    Since Transporter runs only on Mac and iPad, the alternatives are Expo EAS submit for Expo and React Native apps, a cloud build provider's upload step like Codemagic or Bitrise, Fastlane running in a pipeline, and the App Store Connect API used directly by a script. What they share is authenticating with an App Store Connect API key rather than an interactive Apple login on macOS, which is what makes uploading from any operating system possible.
    How does Expo EAS upload without a Mac?
    For Expo and React Native apps, eas build compiles your iOS app on Expo's hosted macOS infrastructure, producing a signed IPA without a Mac and managing signing for you, and eas submit uploads that build to App Store Connect. So the entire path from source to App Store Connect happens in the cloud from your Windows or Linux machine. You authenticate submission with your App Store Connect API key. Running eas build for iOS then eas submit is often the simplest complete no-Mac answer.
    Can Fastlane upload from a non-Mac?
    Yes, when it runs in a cloud macOS environment or authenticates through the API. Fastlane's deliver, or upload_to_app_store, sends a build for review, and pilot, or upload_to_testflight, sends it to TestFlight, both authenticated by an App Store Connect API key so no interactive login is needed. Building still requires macOS, so Fastlane runs on a hosted macOS runner that builds and uploads in one job, with Fastlane match managing certificates and profiles across the pipeline.
    What credentials do I need to upload without a Mac?
    The same signing pieces plus an App Store Connect API key. You need an Apple Distribution certificate and an App Store provisioning profile, which your cloud service or Fastlane match can generate and manage so you do not create them on a Mac by hand. Separately, the App Store Connect API key, a Key ID, Issuer ID, and private key file, authenticates the upload programmatically, which is why it works from any operating system and enables uploading without a Mac.
    How do I check the build if I have no Mac to inspect it?
    Use a build scanner, which is a service you submit the IPA to from any platform. A scanner like PTKD.com (https://ptkd.com) analyzes your build and reports leaked keys and secrets, over-broad permissions, and insecure data handling by severity, mapped to OWASP MASVS, so the cloud-built IPA you are about to upload is checked from your Windows or Linux machine. It does not build or upload your app, which your cloud service handles, but it verifies the build before you submit it.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free