Context
An AI agent that physically operates a real iPhone, systematically testing an app against all 135 Apple App Store Review Guidelines before submission.
The Problem
We mapped our development pipeline to find the biggest time sinks. The answer was clear: Apple review back-and-forth. A rejection means waiting days for the next review cycle, fixing the issue, resubmitting, and waiting again. The first submission is the hardest - Apple scrutinizes new apps more aggressively.
Common rejections are preventable: missing Sign in with Apple, privacy label mismatches, subscription disclosure missing a specific sentence, account deletion buried too deep. These aren't engineering problems - they're compliance checklists that nobody checks thoroughly enough before hitting Submit.

What I Built
A Claude Code plugin that connects to a physical iPhone via USB, installs the app, and performs a full App Store review, tapping through every screen, testing every flow, cross-referencing App Store Connect metadata against actual app behavior. The plugin uses mobile-mcp to run commands automatically and is connected to ASC CLI to fetch the metadata of the app store connect.
- Validates a real iPhone is connected (simulators rejected, Apple reviews on real devices)
- Builds and installs the app fresh
- Fetches App Store Connect metadata (screenshots, privacy labels, subscriptions, age rating)
- Executes 9 review phases: launch, authentication, feature exploration, permissions, payments, settings, edge cases, content/legal audit, report generation
- Outputs a **rejection-style report** with guideline numbers, evidence, and fix instructions
The agent navigates the app the way a human reviewer would: discovering screens through tab bars and buttons, tapping every interactive element, typing into fields, accepting permission dialogs, and taking screenshots as evidence at every step.

Results
It caught real rejection-worthy issues on multiple submissions before we wasted a review cycle: missing Sign in with Apple alongside Google login, privacy label not declaring analytics data collection, subscription screens missing the exact Apple-required cancellation disclosure text.
The Reviewer plugin also catches some issues that need intelligence because they are subjectives, for example, we have been rejected by our own reviewer on our ScaleWeight app for wording issues on some compliance screens.
Each catch saves 3-7 days of review waiting time. For first submissions (where Apple is strictest), it's the difference between a clean approval and weeks of back-and-forth.

Timeline
2026
Stack
Responsibilities
- Full plugin architecture and development
- iPhone USB automation pipeline
- 135-guideline compliance checklist implementation
- Integration with App Store Connect CLI