← ClaudeAtlas

release-artifact-checklisted

Use before uploading an Android APK/AAB or iOS build to a store, or before publishing any packaged artefact. Reads the artefact itself instead of trusting the source tree, because build systems keep generated copies that outlive a deleted source file.
DomenicMoran/verified-done · ★ 2 · Data & Documents · score 73
Install: claude install-skill DomenicMoran/verified-done
# Read the artefact, not the source tree Deleting a file from the source tree does not remove it from the build output. Gradle keeps a generated resources directory; asset pipelines keep caches; bundlers keep prior chunks. An asset you removed weeks ago can still ship. The same applies to version numbers. They frequently live in more than one place, and the one you edited may not be the one that ends up in the artefact. ## Before every upload 1. **List what is actually inside.** ```bash # Android unzip -l app-release.aab | head -50 unzip -l app-release.apk | grep -i "res/drawable" | head -30 ``` ```bash # iOS unzip -l App.ipa | head -50 ``` 2. **Read the version out of the artefact**, not out of your editor. ```bash # Android: needs build-tools on PATH aapt2 dump badging app-release.apk | head -3 ``` ```bash # iOS unzip -p App.ipa "Payload/*.app/Info.plist" \ | plutil -extract CFBundleShortVersionString raw - ``` 3. **Grep for anything you believe you removed.** If it is still in the artefact, the source tree is not the whole story. 4. **Check the platform metadata your store validates.** Missing keys fail at upload time, minutes after a long build, with an opaque code. A framework dependency shipping an `xcframework` without `MinimumOSVersion` is a common source of `ITMS-90530` and `ITMS-90360`. ## Version numbers hide in more than one file Check every location before assuming the bump took: -