· 3 min read

My detector app needed a hardware demo video. It was 100% software.

I shipped a detector-class iPhone app — uses on-device sensors to estimate something about its environment. No external hardware. No bluetooth pairing. Nothing to plug in. Just the iPhone.

Apple Review rejected it on the second round with this:

Guideline 2.1 — Information Needed

We need additional information to continue our review. Please provide a demonstration video showing the app’s pairing process with the external hardware device.

There is no external hardware device.

I responded: “There is no external hardware device. The app uses on-device sensors only.” Reviewer came back asking for the demo video again, this time more specific: “Please provide a video showing how the user pairs the app with the hardware before performing a scan.”

I had a 30-minute call with myself about whether to record a video of nothing happening.

What was actually wrong

App Store Review treats the entire Detector / Scanner / Meter / Finder lexical family as assumed-hardware-paired by default. If your title contains one of those words, or your description leads with phrasing like “scan for X,” the human reviewer’s mental model is: this is a companion app for some kind of bluetooth puck the user clips on. Apple’s internal policy says: if it’s a hardware companion, demo the pairing flow.

The reviewer is not stupid. The reviewer is following a rule. The rule says “Detector + no demo video = ask for one.” That’s it.

You only escape the rule by disclaiming on the first line of the App Store description. Not in the middle. Not in the keywords. Not in a screenshot caption. The first line.

The fix that worked

I changed the App Store description’s first sentence from a feature-led pitch to a software-only disclaimer:

Before:

[App] helps you detect [thing] using your iPhone’s sensors.

After:

[App] is a 100% software [thing] detector — uses your iPhone’s built-in sensors, no external hardware required.

Same app, same screenshots, same code. Resubmitted. Approved 18 hours later.

What I learned

The lesson generalizes to any app whose title or category implies a physical companion:

If your name or category says…Add to the FIRST sentence…
Detector / Scanner / Finder”100% software, no hardware”
Meter / Counter / Tracker”estimates from sensors, no external device needed”
Health / Fitness band/ring”uses iPhone sensors, no wearable required”

This is one rule. There are dozens like it. You don’t memorize them, you encode them once and run a check on every submission. That’s why I built apple-presubmit-audit — the detector-disclaimer rule is one of the 70+ checks it runs locally before you hit Submit.

$ apple-presubmit-audit ./MyApp
🔴 Detector/Scanner/Finder app detected (title contains a hardware-implying word)
   App Store description's first sentence does not contain
   "100% software" or "no external hardware" disclaimer.
   → Likely 4.0 / 2.1 rejection. Add disclaimer to first sentence.

If I’d had this script before that first submission I’d have saved 4 days of review cycles. Now my pipeline never submits a detector-class app without the disclaimer.

The bit that bugs me is that nothing about this is in the public Review Guidelines. It’s a learned rule from getting bounced enough times. There are six or seven more like it that I haven’t seen anyone document. I’ll write them up here as I find them.

If you’ve been bitten by a similar “rule that isn’t a rule,” tell me on Bluesky. I’m collecting.

Comments

Be the first to start a discussion. Reply with your thoughts on Bluesky and tag @jiexiang.dev — I'll link the thread back here.