Cats and Dogs

Darkroom NotesSeason 1STIL.Part 5 of 7

Darkroom Notes

Rejected three times, approved on the fourth — a record of App Store review

STIL. was rejected three times by App Store review. Permissions, payments, and finally the robustness of the app itself. Each time: deflate a little, fix the cause, submit again. The grittiest record of finally getting through on the fourth try. The fifth frame of the series.

Rejected three times, approved on the fourth — a record of App Store review

It would be a lie to only tell the clean parts, so here's the grittiest one too. STIL. was rejected three times by App Store review. On the fourth try, it finally went live.

When you ship an app as a solo developer, review is the last wall standing in your way. The distance between "the code runs" and "it's on the store" was longer than I'd thought.

First — permissions and the account

The first notes were about permissions and how the account was handled. "Why is this permission needed?" "Is there a way to delete the account?" I addressed these by adding explanation and implementation. In hindsight, these were matters of etiquette at the front door.

This homework later led to the decision to not have an account at all — a story I wrote about in another post.

Second — gaps around payments

The second was about payments. The in-app purchases weren't correctly tied to the review submission, and the link to the terms of use (EULA) was missing.

Place the terms link properly on the paywall, hook up the purchase products, add a way to manage the subscription. The clerical but unskippable etiquette of being a paid app was still missing. I filled it in one item at a time and submitted again.

The paywall, hardened through review

Third — the note that hit hardest

The third hit hardest. It read: "the price sometimes doesn't display on the purchase screen," and "the upgrade button sometimes doesn't respond when tapped."

I looked into it, and went pale. This wasn't a rules problem — it was the weakness of my own code. When the process of fetching the purchase products failed for some reason, the screen would silently freeze. When it worked, it worked. But on a shaky connection, or when the info couldn't be fetched, it looked to the user like a broken app. Review pointed squarely at that "when it doesn't work."

What I fixed wasn't a feature — it was robustness. Show clearly that something is loading. On failure, surface an error and offer a retry. Properly build how the app behaves when things go wrong. That had been missing entirely.

Fourth — approved

I submitted the fourth time with that robustness added. This time it passed. From the first rejection to here was about a week. It sounds short, but I spent half a day deflated after each one, so it felt much longer.

What being rejected taught me

Looking back, review wasn't an "enemy." If anything, it was a counterpart that, every time, pointed precisely at holes I couldn't see myself. That third one — how the app behaves when things go wrong — left to myself, I would probably have shipped with it still open.

In solo development, there's basically no one to praise you and no one to stop you. Which is exactly why an outside eye saying "this part is weak" meant something. Being rejected three times wasn't a detour; I think it just meant the app came out that much sturdier.

Next time, the "doing it all alone" part itself: why I build alone, and how I keep it running.

You'll find STIL. at stil.photo, and the app on the App Store.

Download STIL. on the App Store