Urgent.News

What's breaking now, across thousands of outlets.

Editions

Tech

I ship iOS apps to the App Store without owning a Mac, using GitHub Actions' free macOS runners

I don't own a Mac. When I built my last iOS app (Citolex, a speed reading app with a couple of native Swift plugins), I didn't want to buy one or pay $20 to $100+/month for a rented cloud Mac just to run Xcode long enough to sign and upload a build. Turns out GitHub gives away free macOS build minutes on public repos, usually used for CI/test runs. I pointed them at the whole release pipeline…

I do not own a Mac computer. When I developed the iOS app Citolex, a reading app with some Swift plugins, I did not want to purchase one or spend $20 to $100+ monthly for a rented cloud Mac just to run Xcode briefly to sign and upload a build. It turned out GitHub offers free macOS build minutes on public repositories, typically used for continuous integration and testing.

I integrated these build minutes into the entire release pipeline. The pipeline begins by checking out the code on a free macOS runner, sets the bundle ID, App Group, and provisioning from GitHub Actions secrets, runs xcodebuild archive to create the app, and finally uploads it directly to App Store Connect. This entire process is initiated by a standard git push.

No Xcode interface or Mac was needed at any point. The result is a fully functioning app with native Swift plugins that went through the full App Store review process entirely through this method. The most common stumbling blocks are not the build step itself, which is straightforward once configured, but rather the signing process.

This includes correctly matching a distribution certificate to the appropriate provisioning profile, ensuring entitlements stay consistent with what's in App Store Connect, and safeguarding the private key. Most of the issues I faced were related to profiles not aligning with the right certificates. It's important to note that obtaining these free build minutes does not eliminate Apple's $99/year developer program fee – that remains necessary.

These free build minutes are specifically for public repositories, whereas private repos receive a much smaller free allowance. While not strictly required, it's still advisable to have a physical iPhone at some point to test the app you're shipping. I compiled the workflow file, signing scripts, and setup/troubleshooting documentation into a single template for $99, available at macless.dev.

While this template is not necessary to understand the concept, it's often requested by those seeking a shortcut instead of piecing it all together from scratch. I'm more than happy to provide assistance with the signing setup, as that seems to be the area most people encounter difficulties.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

This story

This is one outlet's version. Read the fullest account.

Read the original at dev.to →

More in Tech

More from Friday 21 August →