Verdict
App StoreGoogle Playone scan, both stores

Know why your app would be rejected.

Upload the build you are about to submit. Verdict reports what App Review would find, with the guideline and the fix.

Drop your .ipa, .apk, .aab, zipped macOS app, or Windows .msix here

or click to choose a file. Up to 1000MB.

Analyzed in seconds. Deleted right after. Never executed.

47of 100

App Store risk

Rejection likely

Trailhead 2.1.0 · com.example.trailhead

4 to resolve

Signed for distribution outside the App StoreVD-SIGN-01
Camera used with no purpose stringVD-PRIV-01
No privacy manifest at the bundle rootVD-PRIV-04
App Transport Security disabledVD-NET-01
Example report. Findings and scoring shown as the engine produces them.
Step 01

You upload the build

The .ipa, .apk, .aab, zipped macOS app or .msix you were about to submit, up to 1000MB. No account, no configuration, no SDK to install.

Step 02

Verdict reads it

Signatures, entitlements, manifests, permission strings, embedded SDKs and deprecated APIs. The same artifacts a reviewer's tooling opens, read as bytes and never executed.

Step 03

You get the verdict

A risk score, every finding that would cost you the submission, the exact thing in your build that set it off, and the change that clears it, each cited to the rule it breaks.

Signing and provisioningEntitlementsPrivacy manifestPermission stringsTransport securityDeprecated APIsEmbedded SDKsData safetyGuideline citationsDaily policy trackingSigning and provisioningEntitlementsPrivacy manifestPermission stringsTransport securityDeprecated APIsEmbedded SDKsData safetyGuideline citationsDaily policy tracking

What you get back

One upload. Everything a reviewer would have found.

Not a checklist you fill in. Six things the scan hands back, each one read out of the build itself.

  • Drop a build, get a verdict

    An .ipa, .apk, .aab or .msix, straight off your disk. One score, one gate decision, and the findings behind both.

    IPAMyApp.ipa48.2 MB
    68

    Needs work before submission

    2 blockers6 warnings
  • Every finding names its rule

    Not an opinion about your app. The evidence read out of the binary, and the guideline a reviewer would cite for it.

    NSCameraUsageDescription is missing

    Info.plist · camera entitlement present

    5.1.1App Store Review Guidelines
  • A work order, cheapest first

    Paste-ready patches ordered by the score each one recovers, so working top to bottom is the shortest route to shipping.

    Fix brief · sorted by score recovered

    • Add camera usage string+9
    • Remove UIWebView reference+7
    • Declare data collection+4
  • Your agent does the fixing

    Verdict speaks MCP, so Claude Code or Codex can scan the build, read what is wrong, and repair it without leaving the session.

    claude

    >scan my latest build

    Uploading, then reading the report

    68 · 2 blockers

    Applying the fix brief

  • The gate stops the release

    The same policy your team set, running in CI. A build that would be rejected fails the pull request instead of the review.

    Release 4.2 → main
    Verdict · release gate2 blockers
    Unit tests
    Merge blocked
  • The team hears about it

    A scan lands or a gate fails and the channel knows, through Slack, Discord, or any webhook that takes a line of text.

    #releases

    Gate failed on MyApp 4.2

    Score 68, two blockers, both cited. Nobody had to go and look.

Verdict works where you already do.

Nothing here is a roadmap. Every name is somewhere a scan can reach, or a build the engine can read, today.

Plugs into

  • Claude Code
  • Codex
  • GitHub Actions
  • GitLab CI
  • Slack
  • Discord
  • Any webhook

Reads builds for

  • App Store
  • Google Play
  • iOS
  • Android
  • macOS
  • Windows
  • Linux builds

The notices you never want to read

These are the rejections developers actually receive, paraphrased from Apple and Google's published templates. Most of them come down to a fact that was already sitting in the build, which is the whole reason this tool exists.

5.1.1Data collection
Your app requests access to the camera but the purpose string does not explain how the data will be used.
Verdict flags this before you submit
2.1App completeness
We were unable to review your app because it was signed with a distribution profile that is not valid for the App Store.
Verdict flags this before you submit
Target APIDevice compatibility
Your app targets an API level below the current requirement. Update targetSdkVersion before this release can be published.
Verdict flags this before you submit
5.1.1(v)Account deletion
Your app supports account creation but does not include an option to initiate account deletion from within the app.
Verdict flags this before you submit
PermissionsSensitive access
Your app declares QUERY_ALL_PACKAGES without a permitted use case for broad package visibility.
Verdict flags this before you submit
2.5.1Software requirements
Your app links against a non public API, which is not permitted on the App Store.
Verdict flags this before you submit
Data safetyDisclosure
The data safety section does not accurately reflect the data types your app collects and shares.
Verdict flags this before you submit
5.1.1Data collection
Your app requests access to the camera but the purpose string does not explain how the data will be used.
Verdict flags this before you submit
2.1App completeness
We were unable to review your app because it was signed with a distribution profile that is not valid for the App Store.
Verdict flags this before you submit
Target APIDevice compatibility
Your app targets an API level below the current requirement. Update targetSdkVersion before this release can be published.
Verdict flags this before you submit
5.1.1(v)Account deletion
Your app supports account creation but does not include an option to initiate account deletion from within the app.
Verdict flags this before you submit
PermissionsSensitive access
Your app declares QUERY_ALL_PACKAGES without a permitted use case for broad package visibility.
Verdict flags this before you submit
2.5.1Software requirements
Your app links against a non public API, which is not permitted on the App Store.
Verdict flags this before you submit
Data safetyDisclosure
The data safety section does not accurately reflect the data types your app collects and shares.
Verdict flags this before you submit
5.1.2Tracking
Your app uses the AdSupport framework but does not request permission through App Tracking Transparency.
Verdict flags this before you submit
2.3.3Accurate metadata
The screenshots in your App Store listing do not show the app in use on the device it targets.
Judgement call, outside static analysis
ForegroundService types
Your app declares a foreground service type that is not matched by a declared and permitted use.
Verdict flags this before you submit
1.2User content
Your app includes user generated content but does not provide a mechanism to report offensive material.
Judgement call, outside static analysis
LocationBackground access
Your app requests background location access without an approved declaration for that use.
Verdict flags this before you submit
3.1.1Payments
Your app unlocks features using a purchase mechanism other than in-app purchase.
Verdict flags this before you submit
4.3Design spam
We noticed your app provides the same feature set as other apps submitted to the App Store.
Judgement call, outside static analysis
5.1.2Tracking
Your app uses the AdSupport framework but does not request permission through App Tracking Transparency.
Verdict flags this before you submit
2.3.3Accurate metadata
The screenshots in your App Store listing do not show the app in use on the device it targets.
Judgement call, outside static analysis
ForegroundService types
Your app declares a foreground service type that is not matched by a declared and permitted use.
Verdict flags this before you submit
1.2User content
Your app includes user generated content but does not provide a mechanism to report offensive material.
Judgement call, outside static analysis
LocationBackground access
Your app requests background location access without an approved declaration for that use.
Verdict flags this before you submit
3.1.1Payments
Your app unlocks features using a purchase mechanism other than in-app purchase.
Verdict flags this before you submit
4.3Design spam
We noticed your app provides the same feature set as other apps submitted to the App Store.
Judgement call, outside static analysis

Paraphrased from published App Store Review Guidelines and Google Play policy pages. Not quotations from named developers.

Pricing

Scanning is free. Pay when you want the fixes.

Every build gets a score and a category breakdown at no cost, because a score you cannot check is worth nothing.

Free

$0forever

Every finding on every build, counted and graded. No account needed.

  • Approval risk score
  • Every finding counted and graded
  • The policy area each one falls under
  • Store listing checked
  • Website check
  • Submission checklist

App Pass

No subscription

$49.99 one time

Pick one app. For 30 days you see every problem we find, what in your build caused it, and how to fix it. Rescan as often as you need.

  • Everything in Free
  • Covers one app, both its iOS and Android builds
  • Rescan as many times as you want for 30 days
  • Every problem named, with the Apple or Google rule it breaks
  • The exact thing in your build that set it off
  • Copy and paste fixes, ordered by what lifts your score most
  • What changed since your last scan, so you can see a fix land
  • Ask questions about your report and get answers with sources
  • A written summary you can hand to Claude, Cursor or Copilot
  • Fail a build automatically in CI, plus API access

One payment. Nothing renews.

Team

Save 17%

$499.99 / yearly

The whole roster, paid once a year. Works out at $41.67 a month across 10 client apps, or $4.17 an app.

  • Every App Pass feature, on every app, for 5 people
  • 10 client workspaces, kept apart
  • One dashboard: every member's scans and apps
  • Slack pings when a scan lands or the gate fails
  • One release policy for every member's CI gate
  • Team-wide build over build comparison
  • Invite by email, and teammates join by signing in

Billed once a year