Boolean Build

Tools

Small, dependency-free CLIs that check a build before the store does. Run them in CI; catch the rejection before a reviewer does.

app-check — all of the above, in one command

Auto-detects the artifact and runs the right audit — Android .aab/.apk, iOS .ipa, or a PNG icon — then aggregates the verdict. Point it at a build directory and it checks everything.

npx @njweber/app-check --dir ./dist

github.com/nwebersoftware/app-check

store-check — Android: 16 KB page size

Google Play rejects Android 15+ apps whose native libraries aren’t built with 16 KB page alignment. store-check reads every .so in the bundle and reports the offenders.

npx @njweber/store-check ./app-release.aab

github.com/nwebersoftware/store-check · the full explainer

manifest-check — Android manifest

Reads the manifest straight out of an .aab (protobuf) or a text AndroidManifest.xml and flags android:debuggable, cleartext traffic, components that need android:exported, and sensitive permissions.

npx @njweber/android-manifest-check ./app-release.aab

github.com/nwebersoftware/manifest-check

ipa-check — iOS: submission pitfalls

Audits an .ipa for the usual App Store bounce reasons: a missing/invalid build number, the export-compliance key, a missing privacy manifest, iPad orientation gaps.

npx @njweber/ipa-check ./YourApp.ipa

github.com/nwebersoftware/ipa-check

privacy-check — iOS privacy declarations

Scans an app binary for privacy-sensitive APIs (camera, mic, photos, location, tracking, …) and reports which required Info.plist usage-description keys are missing — the rejection (and crash) that's easiest to ship by accident.

npx @njweber/privacy-check ./YourApp.ipa

github.com/nwebersoftware/privacy-check

icon-check — icons

Validates a PNG app icon: 1024×1024, square, and no alpha channel (the classic App Store rejection) — or adaptive-icon foreground rules for Android.

npx icon-check ./assets/icon.png

github.com/nwebersoftware/icon-check · the icon rules explained

screenshot-check — store screenshots

Validates a folder of store screenshots against the rules — size, format, aspect ratio, and count — for Google Play or the App Store. Catches the “your screenshot is too tall” upload error before you hit it.

npx @njweber/screenshot-check ./screenshots

github.com/nwebersoftware/screenshot-check

Use in CI (GitHub Actions)

Each repo is also a composite action — one line, no setup:

- uses: nwebersoftware/store-check@main
  with:
    path: android/app/build/outputs/bundle/release/app-release.aab

Why “dependency-free”

Each tool is plain Node with its own ZIP/ELF/PNG parsers — no native build steps, no heavy dependencies. They run anywhere Node runs (including CI runners) and exit non-zero on blocking issues, so they slot straight into a pipeline.

These tools are free and stay free. If you want the production-ready foundation they're checking for, see the starter kits.