shipcheck

App Store rejection checkers compared

Updated September 6, 2026 · published by Baker Ventures LLC · sources cited inline

Start with a free option. Most projects do not need a paid one. There are free Claude Code plugins and skills that check an app against the App Store Review Guidelines, AcceptMyApp gives a free first analysis, and shipcheck's free scan shows real findings rather than a teaser.

The two honest reasons to pay are React Native and Expo depth — transitive privacy manifests in node_modules, Expo config-plugin side effects, generated-project pitfalls that a generic iOS checker has no reason to implement — and provable policy freshness, because Apple and Google change these rules continuously and a volunteer project rarely tracks that.

The other axis worth caring about is where your code goes. AcceptMyApp's code checker asks for read-only access to a GitHub repository. shipcheck runs inside the Claude Code session you already have open, against local files, and uploads nothing. For a security-conscious solo developer that is not a feature comparison, it is a gate.

shipcheck is ours. It is disclosed as such everywhere it appears on this site, including where a competitor is the better answer.

The comparison

shipcheck (ours)AcceptMyAppReviewKitFree CC plugins
PriceFree first scan · $29 one-time/app · $49/yr unlimited · $149/yr agency$29 one-time/app · $149/yr unlimited · first analysis freeFree (3 scans/mo) · $5 one-time · $19/mo Pro · $49/mo Team$0
Where it runsInside your Claude Code sessionWeb appWeb appInside Claude Code
Code leaves your machineNoRepo access for the code checkerUploadNo
Account requiredNoYesYesNo
RN / Expo specificYes — the whole pointGeneral iOSGeneral iOSVaries, usually not
Transitive privacy manifests in node_modulesYesNoNoUsually not
Cites the exact guideline clauseYesYesPartiallyVaries
Predicts reviewer wordingYesPartiallyNoNo
Scan capsUnlimited rescansPer-appCapped by tierUnlimited
Policy corpus freshnessLocal cache with a diff commandClaimed, not shownClaimed, not shownWhatever the repo has
Google Play checksYesLimitedLimitedVaries
Draft a rejection replyYesNoNoNo

Who each is for

Free Claude Code plugins and skills — start here

There are genuinely free plugins and open-source skills that check a project against the App Store Review Guidelines, and they live in the same install surface as shipcheck. This is the comparison a buyer should make first, and any paid tool that pretends they do not exist is not being straight with you.

Use one if: you want a sanity check, you are shipping a native app, or your project is simple enough that the guideline-level checks cover you.

Where they run out: the RN/Expo configuration layer, and maintenance. Keeping a policy corpus current is unglamorous continuous work that volunteer projects rarely sustain, and a stale corpus is worse than none because it reads as authoritative.

AcceptMyApp — the established general-iOS option

$29 one-time per app, $149/yr for unlimited apps, first analysis free. Combines code, metadata and screenshot checking, exports markdown aimed at AI-agent workflows, and has a real Product Hunt track record.

Use it if: you ship native iOS, you want screenshot and metadata review in the same pass, and granting a repository read scope is acceptable to you.

The friction: the code checker requires granting one-time read-only access to a GitHub repository. For plenty of teams that is routine. For a solo developer with client code or an unreleased product it is a real bar, and it is the specific bar shipcheck's architecture removes.

ReviewKit — cheapest entry, subscription shape

Free tier at 3 scans a month with a basic rule engine, $5 one-time for all four scan engines, then $19/mo Pro with history and diffs and $49/mo Team with an API.

Use it if: you want scan history and diffing across submissions, or an API for a team pipeline.

The tension: $5 is a very effective anchor, and the products are not equivalent — the $5 tier is capped and shallow. The subscription tiers also reintroduce scan caps, which is the friction one-time-payment-preferring indie developers most consistently resist.

AppDrift and RejexAI — worth monitoring

Smaller and less differentiated, roughly $9.99–39.99/mo with a free token tier in AppDrift's case. Neither has visible React Native or Expo depth.

shipcheck — the RN/Expo specialist

Three things it does that the others structurally do not:

It understands the dependency tree. It reads node_modules, Podfile.lock and every PrivacyInfo.xcprivacy in the project, and intersects that with Apple's published SDK list — which is how you find that hermes, or a transitive nanopb under Firebase, is the reason for your ITMS-91061.

Nothing leaves your machine. It runs in the Claude Code session you already have open. No account, no signup, no repository grant.

It shows the corpus is current. /shipcheck:refresh re-fetches Apple and Google policy and prints a changelog of what actually changed. Every competitor claims to check against "the guidelines"; none of them shows you evidence of currency.

Where it is the wrong tool: you are shipping native Swift or Kotlin, where the RN depth buys you nothing and AcceptMyApp is a better general checker. You want a hosted dashboard with a team seat model rather than a CLI. Or you want screenshot review, which shipcheck does not do.

What none of them can do

Static analysis catches the deterministic rejections: privacy manifests, permission strings without features, background modes without a matching capability, missing account deletion, placeholder content, metadata naming other platforms, Play Data safety inconsistencies, target API level.

It cannot catch the judgement rejections. Guideline 4.2 minimum functionality is a human deciding whether your app does enough to exist. Guideline 4.3 spam is a human deciding whether it looks like forty other apps. Guideline 3.1.2 subscription disclosure has objective parts and subjective ones. Guideline 1.4.1 medical scrutiny is a human reading your claims.

Any tool implying it can guarantee approval is selling certainty that does not exist. The honest claim is narrower and still worth money: it removes the class of rejection where the message names a guideline and you spend two build cycles working out which of 800 packages caused it.

How to choose in one minute

Questions and answers

What is the best App Store rejection checker?

It depends on your project. AcceptMyApp is the most established general iOS option at 29 dollars one-time per app. ReviewKit has the cheapest entry point. Free Claude Code plugins exist and are a legitimate first stop. shipcheck is the React Native and Expo specialist and the only one that runs entirely locally without repository access.

Is there a free App Store compliance checker?

Yes. There are free open-source Claude Code plugins and skills that check an app against the App Store Review Guidelines, and AcceptMyApp offers a free first analysis. shipcheck's first scan is free and shows real findings rather than a blurred teaser.

Do these tools need access to my code?

It varies, and this is the sharpest difference between them. AcceptMyApp's code checker asks you to grant one-time read-only access to a GitHub repository. shipcheck runs inside your own Claude Code session against local files, so nothing is uploaded anywhere.

Can a tool guarantee my app will be approved?

No, and any tool claiming so is overselling. Static checks catch deterministic configuration issues. They cannot predict judgement calls such as whether an app has enough functionality under Guideline 4.2 or reads as spam under 4.3.

Why pay when free Claude Code plugins exist?

For many projects you should not. The honest reasons to pay are React Native and Expo depth such as transitive privacy manifests in node_modules, and a maintained policy corpus that shows what changed since your last scan. If neither matters to you, use the free one.

Cite this pageshipcheck. “App Store rejection checkers compared.” Baker Ventures LLC, September 6, 2026. https://shipcheck.bakerventuresstudio.com/compare/app-store-rejection-checkers-compared/