AppForShareCreate a free account

Will this build install? Find out before you upload it

Every plan, no account needed. Security findings with a Pro or Team token

The usual way to learn that an iPhone build has the wrong profile is a tester saying "it will not install" an hour after you sent the link. By then the build is shared, the link is out and someone has to start again.

npx appforshare check reads the .ipa, .apk or .aab where it was built, on your computer or the CI runner, and prints what would stop it: store readiness findings, install problems and the security scan counts. Nothing is uploaded and the file is not sent anywhere.

Example

appforshare check app.ipa

  • Provisioning profileAd Hoc, ends in 9 days
  • Bundle IDCovered by the profile
  • Store readinessReady
  • Security scan0 to fix, 2 warnings, 1 note
Checked on your computer. Nothing is uploaded.

Made for

  • Developers who want to catch signing mistakes before testers do
  • CI pipelines that should stop before a broken build is shared
  • Teams that cannot send a build to any outside service before it is cleared

What it ends

  • Sharing a build signed for the App Store and finding out from testers
  • A provisioning profile that expired last week
  • An Android test only or debug build sent to a client

How it works

  1. Step 1

    Run it on the file

    npx appforshare check build/app.ipa. Give a folder for its newest build, or nothing to check the folders in appforshare.config.json.

  2. Step 2

    Read the result

    Store readiness findings with a fix each, install checks, and the security scan counts. --json prints the same for scripts.

  3. Step 3

    Stop the pipeline

    Exit code 2 when the result is blocked, also on review with --fail-on review; 1 when the file could not be read. In the GitHub Action, check: true stops the step before anything is uploaded.

What it checks

iOS: no provisioning profile, a profile that expired or ends within 14 days, an App Store profile, expired certificates, a bundle ID the profile does not cover, entitlements the profile does not grant, and a wildcard App ID with capabilities. Android: not signed, test only, only a v1 signature on an app that targets API 30 or higher, debuggable, and the debug key.

Then the same store readiness rules as the IPA and APK inspectors and every upload (one generator keeps them equal), and the security scan rules. App Store signed .ipa files are not failed for install problems, since they are meant for TestFlight.

Who sees what

The readiness and install checks need no account and no token. The security scan findings, with where each one is and how to fix it, need a Pro or Team token; without one you see the counts, the same rule as the build page. With a token the CLI only asks AppForShare which plan it has.

An .aab is read from its protobuf manifest, with the rules run on the base module. The check says an .aab does not install on a phone; uploading it with a free account turns it into an APK.

Your AI coding assistant can run it too, through check_local_build in the npm appforshare-mcp package, which reads files on your computer.

Good to know

Questions

Is the file uploaded?
No. It is read on your computer or runner. With a token, the CLI only asks which plan the token has.
Do I need an account?
No, for the readiness and install checks. Security findings need a Pro or Team token.
Is it the same check as after upload?
Yes. The same rules run on every upload, so the answer matches.
Can I check without the terminal?
Yes. The IPA inspector, APK analyzer and AAB inspector run in the browser, also without uploading.

Read next

Try it on your own app

Free account in a minute. Pro starts with a 7 day free trial.

More features