Most young founders I talk to treat "ship to the App Store" as the finish line. You build the app, upload the binary, wait for the green checkmark, and start counting downloads.
We have been building Mac apps at Nektony for going on fourteen years, and most of the real work, in my experience, begins the moment you hit upload.
The App Store shapes far more than how your app reaches people. Its rules quietly inform your architecture, your roadmap, and your launch date, and they do that from the first week of the project whether you account for them or not.
Here is what we learned over those years, written down so a team starting today can see it coming.
The first thing that surprises teams coming from the web is the sandbox. Every app on the Mac App Store runs inside it, and the sandbox governs what your code is allowed to reach: other apps' files, system folders, the network, the hardware. Each of those capabilities depends on an entitlement that Apple has to grant you.
This matters most when you build anything system-level. We make cleanup and uninstaller utilities, and a fully sandboxed app simply cannot reach into another app's Library folder to clear out the files it leaves behind.
We ran into this when we decided we wanted our apps available on the App Store as well, and it changed how we thought about the product from then on.
So the first question for a new app is a practical one: what does your app actually need to reach, and will Apple let it?
I would read the entitlements list early, alongside the API docs, and request only what you genuinely use. Every sensitive entitlement, from Full Disk Access to the camera to location, is something a human reviewer will later ask you to justify.
Earlier, Apple reviewed most submissions quickly, approximately within 24 hours. But because of the rise of vibe-coded apps, the process might occasionally take up to a week or more.
The risk is planning a launch as though any speed is guaranteed for you, because three situations slow it down in ways that catch new teams by surprise.
The rule we follow is simple.
For a normal update, plan around a couple of days.
For a launch, a brand-new app, or anything touching entitlements, give yourself a week of slack and a fallback date.
Apple does offer expedited review for genuine emergencies, such as a crash on launch or a security fix, and it is worth saving for exactly those.
Rejections are part of the process, and every team I know has collected a few.
Most of the ones we have seen fall into a handful of groups:
Very few of these are fatal. Most are simply round-trips.
What has worked for us is replying in the Resolution Center calmly and specifically, with steps to reproduce and, where it helps, a short screen recording.
When we genuinely believed a reviewer had misread a guideline, we asked for a call or filed an appeal, and we have had decisions reversed that way.
Resubmitting the same binary in the hope of drawing a different reviewer tends to go nowhere, so it is better to fix the actual issue or explain clearly why there is nothing to fix.
The part that adds up is time. Each rejection is a round-trip measured in days, and three careless ones can quietly cost two weeks.
The cheapest review is the one you pass on the first try, so it pays to read the App Store Review Guidelines carefully before you submit.
There is a rhythm to Mac development that is easy to underestimate at first.
Every autumn Apple ships a major macOS release, and each one changes the ground under your app in small ways.
We have seen a new version put a permission prompt in front of a feature that had worked untouched for years. We have seen Apple retire a system surface we relied on: macOS Tahoe removed Launchpad, which broke a workflow we had been recommending to users for a decade.
The move to Apple Silicon meant shipping everything again as a universal binary.
None of these were our bugs, yet all of them became our work.
I would treat this cadence as a fixed cost.
We run our apps against the developer betas through the summer, every summer, and we keep room in the roadmap to make things work on the new OS before users upgrade and the support inbox fills up.
A team that plans for September tends to look steady to its users.
A team that meets it by surprise every year tends to look unreliable through no real fault of its own.
Getting approved puts your app in the store, and turning that listing into customers is a separate effort.
After fourteen years, here is where I have seen the most leverage, roughly in order.
There is one thing specific to the Mac that is worth keeping in mind as you weigh all of the above.
On the Mac you have a second, fully legitimate way to reach users: distributing your app directly from your own website, as long as it is signed and notarized through Apple.
Apple has required notarization for direct distribution since macOS Catalina and documents the process for developers.
A notarized direct build runs outside the App Store sandbox, so it can do things a sandboxed build cannot, which is why so many Mac utilities exist in both forms.
For us this became a permanent part of the operation.
We ship two builds of the same app:
That means two code paths, two sets of capabilities, two update channels, and two streams of support questions, for as long as the product exists.
I would think this through at the start rather than bolting it on later, because adding a second distribution model to a finished app costs far more than designing for it early.
If your app lives comfortably inside the sandbox, the store on its own may be all you ever need.
If it does not, that is something you want to know before you have built around the assumption.
If I had to compress fourteen years into a single idea, it would be this:
The App Store works best for teams that build with its constraints in mind from the beginning.
The sandbox, the review queue, the autumn releases, the way ratings move, all of it is simply the shape of the business you are choosing to be in when you ship a Mac app.
Teams that design for it early tend to have quiet launches.
Teams that meet it one rejection at a time tend to spend their first year on rework they could have planned around.
Either way, the constraints stay the same, and the part you control is how early you account for them.
One thing I’d add: what about replying to reviews you strongly disagree with?
It’s easy to be thoughtful and polite when the feedback is fair. The real test is when a review is factually wrong, unfair, or simply makes you angry. After years on the App Store, I’ve come to think that you’re not really replying to that customer — you’re writing for everyone who will read the review later.