Ship Check: check your APK, AAB or IPA against store rules before you upload
Google Play and the App Store publish rules with dates and then tell you after you upload. Ship Check reads your APK, AAB or IPA before you do, shows which library breaks which rule and tells you which engine or SDK ships it.
The web tool is free. Ship Check CLI, for build servers, is $29.
- Input
- Android .apk and .aab, iOS .ipa
- Web tool
- Free, MIT licence, runs in your browser
- CLI
- Node 18 or newer, no install, no dependencies
- Rules checked
- 2026-11-10, each result links its source
- Tested with
- 25 unit tests, 5 real APKs and 112 browser checks in Edge and Chrome
- Price
- Web tool free, CLI $29 one-off
Drop a build on the page. It is read in your browser and never uploaded. For build servers, Ship Check CLI runs the same checks and exits with a code that stops the pipeline.
What Ship Check does
16 KB pages, per library
Every PT_LOAD segment of every 64-bit native library must have an alignment of 16384 or more. 32-bit libraries are exempt and shown as such. Google Play stops releasing updates without 16 KB support from 1 February 2027.
RELRO
Google's own rule for GNU_RELRO, so a library that is aligned but would still crash on a 16 KB device is caught. In the test set, a real Flutter app passes alignment on all five 64-bit libraries and fails RELRO on one.
Zip and bundle alignment
Uncompressed libraries in an APK must start on a 16 KB boundary, and an AAB carries its own page alignment setting. Ship Check also reads NDK and compiler markers where they exist.
Which engine or SDK is to blame
Libraries are matched to Unity, Unreal, Godot, Flutter, React Native, Solar2D, Cocos, Defold, GameMaker, Sentry, MMKV, Wwise, FMOD, AppLovin and more, with an evidence note for each match. A library that is not in the map is shown as unknown. A fix is shown only where the vendor documents it.
Real SDK levels and Billing
The real target and minimum SDK from the manifest, the package and version, and the Play Billing Library version.
Dated rules with their sources
Google Play 16 KB, 64-bit, target API 36 and Play Billing versions, and Apple's iOS 26 SDK and the April 2027 iOS 27 SDK and iOS 15 requirements. Each rule has its official source and the day it was read.
Reports you can keep
Copy the report as Markdown or download it as JSON. The page works offline, at 375 px width and in dark mode.
Screenshots






In your build pipeline
Ship Check CLI is the same checks as a command: node shipcheck.mjs MyGame.aab --fail-on=error. Add --json for a full report, --fail-on=warning to also stop on rules that start soon, and --date 2027-02-01 to see what a build looks like on a future day. It exits with a code your pipeline can act on.
The web page and the CLI share the same code. The paid part is the packaging, the JSON report and the exit code for your build server, and support.
Pricing
Runs in your browser. Nothing is uploaded.
One purchase covers one team or company. Updates within version 1.x.
Good to know
- It reads what is in the file. It cannot see your store listing or console settings.
- AAB and IPA files are tested with synthetic files built to the documented formats, because no open-source AAB or IPA was available as test input. The APK checks were also compared with an independent implementation on 5 real APKs from open-source apps, 111 libraries in all, with identical results.
- Tested on Windows with Node 24.12.0. Other operating systems and Node versions are untested.
- The evidence for GameMaker, Defold and Cocos libraries comes from community sources rather than official documentation, and the evidence note says so.
- A technical tool, not legal advice. A passing report does not guarantee that a store accepts your app.
Guides
FAQ
Is my build uploaded?
No. The page reads the file in your browser, and the CLI reads it on your own machine.
Why RELRO as well as 16 KB alignment?
A library can be aligned and still fail Google's rule for the relocation segment. Ship Check checks both.
Which engines does it work with?
Any engine that produces an APK, AAB or IPA. It names the engine or SDK behind each library where it knows it, including Unity, Unreal, Godot, Flutter, React Native, Solar2D, Cocos, Defold and GameMaker.
Is the web tool really free?
Yes. It is released under the MIT licence, and you can download the files from the page's own folder to run it offline.
Is this the same as Ship Check Lite?
No. Ship Check Lite is the Solar2D version for Android builds. Ship Check covers Android and iOS builds from any engine and the dated store rules.
Related tools
More from Karelia Labs
Updated
