Skip to main content
One check looks for the things App Review rejects most often. Each finding names the guideline and shows the evidence: a frame or a file path. Mobster doesn’t submit anything and can’t promise Apple accepts the build; it finds the problems that need no judgment.

The check

Save this as .mobster/checks/app-review.yaml and run mobster test:
.mobster/checks/app-review.yaml
A run that finds a problem prints it in plain words:

What it checks

Before the app runs, from the built .app: A framework with a required-reason API and no manifest of its own is a finding for a person, not a failure. While Smart walks the app: Keep a somewhere line only for what your app has: Restore Purchases if it links StoreKit, Sign in with Apple if it offers another sign-in, account deletion if people can create accounts.

How a run is judged

A finding at fail level makes the run failed. A control Smart never found is needs_review, because the run may not have reached that screen: open the frames and add a step that goes there. Mobster follows links to Settings and About only. It doesn’t crawl the app. The keys behind this are throughout, somewhere and audit in the check file. You can write them in any check.

What it doesn’t do

It doesn’t read your App Store Connect metadata, review your screenshots or test in-app purchases (Checks for TestFlight, purchases and push covers the paywall). It reads strings in the binary, so a library that mentions an API without calling it can raise a finding for a person.