Three small App Store lessons from shipping Pupport 1.2
Screenshots, review notes, and a buy button I tested just in time. Small details that make a release go smoothly.
Pupport is a small app for people taking their dog abroad. You pick a country and a travel date, and it turns that country's pet travel rules into a checklist with real deadlines: microchip first, then the rabies shot, then the waiting period, and so on.
In September I worked on version 1.2. It was mostly App Store work rather than code: new screenshots, a rewritten listing, and two custom product pages. Along the way, App Review sent the update back to me twice with notes, and I caught one more problem myself just before it reached anyone.
Each one was small, and each one cost a few days. I'm writing them down so I don't repeat them, and in case they save you the same few days.
1. Keep prices out of your screenshots
My new screenshots had a small badge on them: "Free · No subscription". It felt like the honest, friendly thing to say. Pupport is free for one dog, and the full version is a single payment, so I wanted people to know that up front.
On September 28, App Review pointed me to Guideline 2.3.7. It keeps pricing language out of an app's metadata: the name, the subtitle, the keywords, and the screenshots. "Free" counts as pricing language. So does "No subscription". It applied to my two custom product pages as well, since they used the same screenshots.
Removing the badge took five minutes. Waiting for the next review took a few days.
The lesson: screenshots show the app. Anything about price belongs in the description or the promotional text.
2. Write review notes for this version, not the last one
Two days later, on September 30, the update came back again, this time under Guideline 2.1(b): the reviewer couldn't find the in-app purchase.
Looking at it from their side, that made sense:
- I had just renamed the purchase in App Store Connect to "Whole Pack — Lifetime".
- Inside the app, the button still says "Unlock Pupport".
- The review notes on the version were still the ones from version 1.0, written before there was anything to buy.
I had written instructions for finding the purchase, but I'd put them in the purchase's own review note instead of the version's notes. The reviewer read the version's notes, and those didn't mention it.
The easy thing to miss: review notes carry over quietly from one version to the next. Nothing tells you when they're out of date.
The lesson: re-read the version's review notes on every submission. If there's a purchase, start with three things: its App Store name, what it's called inside the app, and the exact taps to get to it.
3. Test every path the App Store can open
Once 1.2 was out, I wanted to turn on a promoted in-app purchase. That's when the App Store shows your purchase right on your product page. Someone taps it, the app opens, and the purchase should start.
Before switching it on, I checked what actually happens after that tap. The answer: the app opened, and then nothing. For a promoted purchase to complete, the app has to listen for StoreKit's purchase intents, and my shared purchase code didn't do that yet.
A customer would have tapped "buy" on the App Store, landed in the app, and wondered what went wrong. Not the first impression I want anyone to have.
I added the listener, tested it on a real iPhone with a sandbox account, and shipped it in Pupport 1.2.1 on October 7. I only switched the promotion on once the App Store was serving 1.2.1.
The lesson: if the App Store can send people straight into a feature, test that exact path on a real device before you turn it on.
The short version
- Screenshots show the app. The description talks about money.
- Review notes are part of each release, not leftovers from the last one.
- After renaming something in App Store Connect, check that the app still calls it the same thing, or say so in the notes.
- Every path the App Store can open into your app gets tested before it's switched on.
None of this is complicated. It's just easy to miss when you're the designer, developer, copywriter and release manager at once, which is pretty much the job description of an indie developer. App Review's notes were clear, and each one made the release better.
Pupport 1.2.1 is live now. If you're planning a trip with your dog, give it a try. And if you've picked up a lesson like these from your own releases, I'd love to hear it. Send me an email.