Build1 distinct publisher3 min readUpdated
A dev.to writeup lays out owning, renting or borrowing macOS. Rental only beats a $799 Mac mini for eight to forty months, depending on the tier.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A developer writing on dev.to has published a cost breakdown of the three ways to build and sign an iOS app without owning a Mac, based on hitting the wall on their own project [0]. It is worth reading as an arithmetic exercise, because the constraint at the top is not negotiable: Apple requires the app be built and signed with Xcode, Xcode runs only on macOS, and that holds whether you wrote it in Swift, React Native, Capacitor or Flutter [1][2].
Route one is buying the hardware. A Mac mini starts around $799 after Apple raised the entry price in 2026, and that is a one-time cost for a machine you own and can use for other work [3]. The author's own caveat is the honest one: it makes no sense for a side project, a one-off, or an idea you have not yet made a dollar from [4].
Route two is renting. MacStadium, MacinCloud and similar services sell remote access to real Macs by the hour or month, running from about $20/month for a shared, lower-spec box to $100/month and up for dedicated hardware [5]. Put those numbers against the mini and the break-even is stark: roughly 40 months at $20, roughly 8 months at $100 [1]. On a side project, eight months is one delayed launch. The other problem is shape, not price. These services are built around interactive use, where you remote into a desktop and click [6]. A release cut takes minutes; a month of rented desktop is mostly unused capacity.
Route three is GitHub Actions. Its macOS runners are free on public repositories [7], and although they are marketed for test suites, a macOS runner is a macOS machine with Xcode's command-line tools, capable of running the same xcodebuild commands that sign, archive and export [8]. The author's pipeline is a push to main, a runner spun up, certificate and profile installed from secrets, xcodebuild archive and export, then upload to App Store Connect and TestFlight [9]. Credentials live in encrypted GitHub secrets and are not exposed in the repo or build logs; repo visibility affects minute pricing only [12].
Private repos change the bill, not the mechanism: a monthly free allowance, then per-minute charges, with macOS minutes at roughly 10x standard Linux minutes, which the author says is usually still cheaper than renting [10][11]. And every route pays Apple's $99/year Developer Program fee regardless [13]. First-year cash, then: about $898 to buy, $339 to rent at the cheap tier, $99 on a public repo [2].
The cost the pricing table misses is signing. Regenerate a certificate without regenerating every provisioning profile built against it and builds fail with errors that do not explain themselves [14]. Profile names and bundle IDs must match character for character, case and whitespace included [15]. Worst is the silent one: reupload with a marketing version and build number you have already used and App Store Connect rejects it while the upload tool reports success, so CI shows green and TestFlight shows nothing [16].
Watch that last failure mode first, because it is the one that costs a day rather than a dollar. Then watch your private-repo minute allowance, which is the only variable standing between $99 a year and a bill.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
A dev.to post titled 'How to build and ship an iOS app without a Mac' documents the author's options and their costs after hitting the Mac requirement while building an iOS app of their own.
To put an app on the App Store, Apple requires it to be built and signed with Xcode, and Xcode only runs on macOS.
The Xcode/macOS signing requirement applies regardless of what the app was built with, including Swift, React Native, Capacitor and Flutter.
Buying a Mac does not make sense for a side project, a one-off app, or testing whether an idea is worth pursuing before making any money; spending $799 to find out if an app idea has legs is a barrier that stops many iOS side projects from shipping.
Most Mac rental services are built around interactive use, where the user remotes into a desktop and clicks around as if they owned the machine, which means paying by the month for something needed only a few minutes per release is largely unused capacity.
GitHub Actions provides macOS build machines, and on public repositories macOS runner minutes are free.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-published practitioner account
Everything rests on one dev.to post by an author with a product to sell. Mechanism claims are internally coherent and first-person verifiable-in-principle (xcodebuild on a macOS runner, secrets-based certificate install, upload to App Store Connect), but the load-bearing commercial figures — $799 Mac mini after a 2026 increase, $20–$100+/month rental tiers, macOS minutes at roughly 10x Linux, and the claim that private-repo minutes still beat renting — are asserted without citation to Apple or GitHub pricing and without any second source in the cluster.
One self-reported shipped app
The only adoption datum supplied is the author's own claim to have shipped Citolex, an App Store app with native Swift plugins, entirely through this pipeline, plus the existence of a paid template productising it. No third-party users, download or install counts, template sales, or usage statistics for macOS runners in release pipelines are given, so adoption is real but singular and self-reported.
Mildly overstated, but self-limiting
The post is unusually well hedged for the genre: it concedes that buying is the right long-term answer, that a rented Mac covers interactive and Simulator-only needs CI cannot, that private repos pay per minute past an allowance, that the $99 Apple fee is unavoidable, and it front-loads the code-signing pitfalls. The residual overstatement comes from the '$0' / 'without spending anything' framing, which holds only for public repositories and silently depends on free macOS runner minutes remaining available and permitted for release builds, and from unsourced comparative pricing used to make renting look worse. The author also sells the template that implements the recommended route.
Author sells the recommended pipeline
The recommendation and the seller are the same party: the post closes by offering the workflow, signing script and pitfall guide as a one-time paid template at macless.dev, and cites the author's own App Store app Citolex as proof. That gives a direct commercial interest in framing hardware purchase and cloud-Mac rental as the expensive options and CI-based signing as the free one, and the disclosure appears only in the final paragraph. No rental vendor, GitHub or Apple input appears anywhere in the cluster.
Mechanism credible, economics thin
Confidence is split. The technical core — that a macOS GitHub Actions runner can archive, sign and export an .ipa and upload it to TestFlight from secrets — is described with enough operational specificity, including its failure modes, to be trusted at practitioner level. The economic comparison that gives the story its headline is single-source, uncited, volatile (vendor pricing and free-tier policy), and authored by a party selling the winning option, so the eight-to-forty-month rental breakeven should be treated as indicative arithmetic rather than an established figure.
build
Split Flutter CI from CD, or pay macOS rates on every pull request1 distinct publisher
build
Delete one strong_release and Swift leaks 145 MB: ARC as a compile-time contract1 distinct publisher
build
GitHub Pages cannot send a single security header, so every Pages site starts at zero1 distinct publisher
build
Deltix's iOS agent only pays off if the successful run survives as a regression test1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026