← All sheets
GL-R-028Sheet 028RECORDR · RECORD · AS BUILT

App Review is a boundary. Two rejections. Five findings. Zero crashes.

RECORD · APP REVIEW · ESSAY · READING APP · iOS

Drawing sheet 028: App Review is a boundary. Two rejections. Five findings. Zero crashes.

General notes

  1. 01Neither rejection was a crash in my code path. Both were the platform's rules meeting my assumptions at the edge.
  2. 02Every row was fixed in the next build. Every row is now a line on the checklist read before pressing submit.

Schedule of findingsGuideline → what was actually wrong → fix

GuidelineFindingFix
5.1.2(i)Privacy label said "used for tracking"Correct the questionnaire, not the code
2.1(a)Splash hang on an iPad I did not ownDrop native splash on first frame
2.1(a)Share sheet dead on iPadGive iPad a popover anchor
4Sign-in opened external SafariIn-app browser for OAuth
1.2User content with no report or blockTerms gate · report · block · filter

As posted

Apple rejected my app twice in three weeks. Neither rejection was a crash in my code. Both were my assumptions meeting the platform's rules at the edge.

The first was a privacy label. App Store Connect said the app collected content "for tracking". It does not. No ad SDK, no device identifier, no data broker. The instinct is to add the tracking permission prompt. The fix was the opposite: correct the questionnaire, because first-party analytics is not what Apple means by tracking.

The second came from a reviewer on an iPad I do not own. A splash screen that hung. A share sheet that did nothing, because iPad needs an anchor for its popover. A sign-in that opened Safari instead of staying in the app. And a community feature with no way to report or block, which is a hard rule for anything with user content.

Every finding was fixed in the next build. Every finding is now a line on a checklist I read before I press submit.

The lesson is the same as every other sheet in this set. App Review is a boundary. What crosses it is not your code. It is your assumptions about devices, rules and users you have not met. Verify at the line.

Essay in the first comment: each guideline, what was actually wrong, and the fix. Sheet 028. Record.

Long form: read the essay behind this sheet.

Read with

  • Sheet 001 · The bug is never where you're looking. It's at the boundary.