Approvable

Pass App Review the first time.

Catch the rejections Apple's reviewers would — right in your browser, before you submit. Your build is never uploaded.

Your metadata & screenshot review is free. Add your build, source code, or a rejection message inside the review — each walks you through how to get it.

The cost of getting it wrong

Roughly 2 in 5 apps are rejected on the first submission.

Almost always for the same handful of things — a crash on launch, a missing demo account, a dead privacy link, a guideline you'd never read. Each miss sends you back to Apple's queue for another day or two.

~40%

of app submissions are rejected on the first try.

2.1

App Completeness — Apple's single most-cited rejection reason.

24–48h

added per re-review, on top of the time you spend fixing it.

Rejection rates from Apple's reported App Review data; 2.1 (App Completeness) is Apple's most common rejection reason.

How it works

Start free. Go as deep as you need.

Every review begins with your listing — free, instant, no signup. The heavier checks are one drop away, inside your review.

01Free

Paste your metadata

Your App Store listing, a link, or a Connect key. We run the full metadata & screenshot review instantly — no signup, nothing to install.

02

You land in your review

A saved workspace for your app: every review stage in one place, plus an assistant that knows your whole submission.

03

Add more to go deeper — still free

Drop your build or source and get the Binary Deep Scan, App Privacy, IAP, and Source audits too — all free, on your own Mac. Then, when you want to fix something, one click of ✦ AI Fix writes the exact code or copy for you.

Everything we check

198 line items Apple could reject you for.

Every check across all 8 review types, each mapped to the exact guideline. Tap a stage to spotlight it.

Fix vs. appeal
Slack tokensSecurity
GitHub fine-grained PATsSecurity
Rival platforms in name/subtitle2.3.10
Purpose strings specific enough5.1.1
6.5″ iPhone · 1284×2778ASC specs
10.5″ iPad · 1668×2224ASC specs
Google SDK manifestITMS-91061
Stripe restricted keysSecurity
Website-wrapper language4.2
Keyword overlaps name/subtitleASO
Excess debug loggingQuality
Tracking identifiers (IDFA/ATT)5.1.2 / App Privacy
Plaintext HTTP endpointsATS
App Transport SecurityATS policy
Generic hardcoded credentialsSecurity
App bundle present
Analytics → Usage DataApp Privacy
Memory sampling2.1 / performance
GitHub tokensSecurity
PurchasesApp Privacy
UIWebView usageDeprecated API
App name presentASC requirement
In-app account deletion required5.1.1(v)
13″ iPad · 2064×2752ASC specs
Health data in iCloud5.1.3
User content (photos/camera/mic)App Privacy
Marketing URL valid2.3
Server-side receipt validationSecurity / Fraud
Dark-mode re-launch2.1
Plain-language explanation
Slow-launch watchdog2.1 / performance
Competitor trademarks in keywords2.3.7
Sign in with Apple required4.8
Enough screenshots2.3.3
Name keyword-stuffing2.3.7
Compliance signal map
Bonjour ↔ local-network key5.1.1
Always-location key pair5.1.1
Age rating vs mature content2.3.6
Consistent orientationASO
Junk keyword termsApple keyword guidance
Platform & dependency inventory
Info.plist readable2.1
URL in keyword field2.3.7
Medical claims1.4.1
Spaces after commas in keywordsASO
Beta / trial words2.2
arm64 device sliceUpload requirement
Max 10 per device classASC limit
Future-feature promises2.3.1
Subscription disclosures3.1.2
Twilio API keysSecurity
Bundle identifier readable
Non-production endpoints2.1
Subscription legal links3.1.2
On-device crypto mining3.1.5(b)
4.7″ iPhone · 750×1334ASC specs
Blank-screen detection2.1
Photo Library purpose stringITMS-90683
6.5″ iPhone · 1242×2688ASC specs
Bundle ≤ 4 GBASC limit
Icon pixel size matchesITMS-90022 / 90023
Kids Category without ads1.3
DiagnosticsApp Privacy
Google API keysSecurity
Bluetooth purpose stringITMS-90683
Contacts purpose stringITMS-90683
Data/reactive SDK manifestITMS-91061
Placeholder text in description2.1
Bundle identifier presentUpload requirement
Tracking without ATT5.1.2
Description keyword stuffing2.3.7
Tracking without ATT string5.1.2
Facebook SDK manifestITMS-91061
Demo account for login2.1
iPad orientation coverageITMS-90474
Camera purpose stringITMS-90683
Export-compliance key setExport compliance
Deprecated location keyDeprecated key
Image SDK manifestITMS-91061
Asset-catalog app iconITMS-90713
AWS access keysSecurity
Privacy manifest presentPrivacy manifests
Web-view wrapper4.2
Duplicate keywordsASO
HealthKit purpose stringITMS-90683
Profile not expiredProvisioning
Resolution Center reply
External payment for digital goods3.1.1
All-caps app name2.3.7
Private-API selectors2.5.1
Exact-size matchASC specs
Keywords field ≤ 100 charsASC limit
5.5″ iPhone · 1242×2208ASC specs
Apple trademarks in name/subtitleApple TM guidelines
Built with current SDKITMS-90725
Push tokens → IdentifiersApp Privacy
Subtitle ≤ 30 charsASC limit
PNG / JPEG formatASC requirement
Screenshot at 2.5s
Support URL present1.5
Screenshots present2.3.3
Support URL valid1.5
Rival platforms in description2.3.10
Query schemes ≤ 50Upload limit
No alpha channelASC specs
Firebase SDK manifestITMS-91061
Networking SDK manifestITMS-91061
Health & Fitness5.1.3 / App Privacy
Provisioning profile presentProvisioning
Installs2.1
Crash check at 3s2.1
Contacts5.1.1 / App Privacy
Privacy policy URL valid5.1.1(i)
Crash-on-launch verdict2.1
Committed .env fileSecurity
Superlatives in subtitle2.3.1
Launch time measured2.1
Local-network purpose stringITMS-90683
11″ iPad · 1668×2388ASC specs
6.3″ iPhone · 1206×2622ASC specs
6.9″ iPhone · 1320×2868ASC specs
Description not too thin2.3.3 / 2.1
9.7″ iPad · 1536×2048ASC specs
Privacy policy URL present5.1.1(i)
Advertising SDKsApp Privacy
Description presentASC requirement
Mapbox secret tokensSecurity
10.9″ iPad · 1640×2360ASC specs
Minimum OS not ancientBuild requirements
Motion purpose stringITMS-90683
Tracking purpose stringITMS-90683
Sign-in → Contact InfoApp Privacy
Pricing terms in name2.3.7
Production push environmentProvisioning
Launch screen presentUpload + 2.1
Required iPhone slotASC requirement
Dark-mode blank detection2.1
ATS fully disabled2.5.x / ATS
Launches2.1
High-memory warning2.1 / performance
Incentivized-review language5.6.1
Tracking without ATT prompt5.1.2
Icon copycat / lookalike4.1
Supabase service-role keysSecurity
Required iPad slotASC requirement
6.9″ iPhone · 1290×2796ASC specs
Speech purpose stringITMS-90683
6.1″ iPhone · 1179×2556ASC specs
Screenshot at 8s
UI/graphics SDK manifestITMS-91061
Microphone purpose stringITMS-90683
Landscape orientationASC specs
Distribution profileProvisioning
Analytics SDK manifestITMS-91061
Purchase-stack detection
Restore Purchases present3.1.1
Placeholder content2.1
Keyword field not emptyASO
Location5.1.1 / App Privacy
External payment SDKs3.1.1
Debug-build entitlementUpload requirement
No simulator build in .ipaUpload requirement
Kids Category vs 17+ rating1.3
Attribution SDKsApp Privacy
Frozen-screen detection2.1
4″ iPhone · 640×1136ASC specs
12.9″ iPad · 2048×2732ASC specs
Simulator available
Placeholder in What's New2.3.12
Background modes2.5.4
Private keysSecurity
External payment for digital goods3.1.1
Version & build presentUpload requirement
Crash check at 8s2.1
Competitor trademarks in name/subtitle2.3.7 / 4.1
Emoji in name/subtitle2.3.7
UGC moderation story1.2
Stripe live secret keysSecurity
App name ≤ 30 charsASC limit
Sign in with Apple4.8
Guideline identification
6.1″ iPhone · 1170×2532ASC specs
App bundle present2.1
Required-reason API manifestITMS-91053
Promotional text ≤ 170 charsASC limit
Account creation → emailApp Privacy
5.8″ iPhone · 1125×2436ASC specs
Template / no-code builder signals4.3
Launch-log error triage2.1
Description ≤ 4000 charsASC limit
In-app account deletion5.1.1(v)
Permission over-ask5.1.1
Large-bundle warningConversion best practice
Location purpose stringITMS-90683
Device-build detection2.1
Calendars purpose stringITMS-90683

Built from Apple's guidelines and real-world rejections. New checks added as Apple's review evolves.

Trust, by architecture

The only pre-review tool you never upload your app to.

Every competitor is a cloud service — you hand them your unreleased app and hope. Approvable flips that: the checks run entirely in your browser, so your build never lands on anyone's server.

The one exception: if you sign in to sync credits across devices, your email and credit balance (never your build or source) are stored with our auth provider. Opt-in — every check works fully signed-out.

Your build & source never leave your browser

On-device

Approvable unzips and analyzes your .ipa and your source right inside your browser — the parsing runs on your machine, not ours. The checks have no upload step, so there's no copy of your unreleased app sitting on a server that could ever be breached.

The only thing we ever see is a finding

AI is opt-in

No analytics, no crash reporting, no fingerprinting, no phoning home. The checks send nothing. When you spend a credit on an AI fix, only that one finding's text — never your build or source — is sent onward to reach Claude. That's the whole outbound surface.

Every claim is auditable

Open to inspection

The checks are plain JavaScript running in your own browser — open DevTools and watch the network tab stay quiet while they run. Each finding cites the exact App Review guideline so you can verify it against Apple's own text.

Every check is free. Pay only to fix.

The whole review — every check, every finding, every guideline — is free, forever, no signup. Credits are for the AI: one-click fixes, the assistant, and rejection help. You start with 5 free credits on us.

$24
30 credits · Fix a whole submission
Most popular
That's about 15 AI fixes or 30 assistant questions — every check itself is free.
Every checkFree
✦ AI Fix — per finding2 credits
✦ AI Assistant1 / question
✦ Rejection Help3 credits
Simulator Launch CheckComing soon
✦ AI WalkthroughComing soon

One-time, no subscription, credits never expire. Every check stays free — credits are only ever spent on AI.

FAQ

Questions developers actually ask.

Why should I trust you with my .ipa?+

You don't have to — that's the design. Your .ipa and your source are unzipped and analyzed right inside your browser; the checks have no upload step, so your unreleased app never lands on our servers. There is no telemetry and no analytics. Open DevTools and watch the network tab stay quiet while a review runs.

What's free and what costs credits?+

Every check is free — all of them, forever, no signup. Metadata, screenshots, the Binary Deep Scan, Source Code Audit, App Privacy Audit, and IAP Audit: the full report, every finding, its guideline, and a plain-text fix, at no cost. They run in your browser, so they cost us nothing. Credits are only for the AI: the one-click ✦ AI Fix that writes the exact code/copy to resolve a finding (2 credits), the assistant (1 per question), and Rejection Help (3). You start with 5 free credits plus a small daily refresh.

How is this different from the other pre-review tools?+

Metadata linters stop at text, and every one of them is a cloud service you upload your app to. Approvable mirrors Apple's actual pipeline — upload validation against the real ITMS error classes, a binary deep scan of your Info.plist and Mach-O, a source and privacy audit, IAP checks — all with guideline citations, and all running on your own device. A live iOS-Simulator launch review that catches crash-on-launch (the #1 rejection) is next on the roadmap.

I don't have App Store Connect API keys — can I still use it?+

Yes. Paste your listing text however you have it — from App Store Connect, a doc, anywhere — and Approvable auto-detects the field labels (name, description, keywords, URLs…) and sorts them into an editable form. Or paste your App Store link and we pull the live listing. API keys are only needed if you want to review an app that isn't public yet.

When is the Simulator Launch Check coming?+

Soon. The engine already exists — it boots your build on a real iOS Simulator and watches it launch, catching crash-on-launch (the #1 rejection), blank first screens, and dark-mode breakage. It needs Mac hardware to run, so we're bringing it online as the product grows. Everything else — the binary, source, privacy, and IAP audits — ships today and runs right in your browser.

Does a clean report guarantee approval?+

No — App Review includes human judgment we can't fully predict (4.2 minimum functionality, design taste, business-model calls). What we eliminate are the mechanical rejections that cause the large majority of first-submission failures. Think of a green report as removing every reason a reviewer could reject you on the technicalities, so their decision comes down to the app itself.

How accurate are the checks?+

Every check maps to a specific App Store Connect limit, ITMS upload error, or App Review Guideline — 198 in total, each with the citation shown. The metadata and screenshot checks are deterministic (exact character limits, pixel sizes, banned patterns). The binary scan reads your real Info.plist, entitlements, and Mach-O; the source audit statically scans your zipped codebase — both right in your browser. A handful of checks are heuristics (private-API strings, copycat icons) and say so in the finding.

Do I need an account?+

No. Everything works signed-out — reviews save to this browser and you get free credits with no signup. Sign in only if you want your credit balance and reviews to follow you across devices. Signing in never changes the trust model: your builds are still analyzed in your browser and never uploaded.

Do credits expire, and can I get a refund?+

Credits never expire, and there's no subscription — you buy what you need, and every check is free regardless. Since credits are only spent on AI (and an AI response is generated the instant you ask), purchases are generally final — but reach out if something didn't work and we'll make it right.

What happens when Apple changes the guidelines?+

We track the App Review Guidelines and the ITMS error classes and add checks as they evolve — recent additions include the iOS-18 SDK requirement, privacy-manifest enforcement (ITMS-91053/91061), and required-reason APIs. The catalog above always reflects exactly what's live.

Is there team or agency pricing?+

Yes — credits are shared, so the 250/500/1,000-credit packs are priced for teams and agencies reviewing many apps, at the best per-credit rate. Credits work across every project on your account.

Your next submission, already approved.

Start with the free metadata review — no signup, nothing leaves your browser.