mobile-ship
mobile-ship
The default failure of shipping RN is trusting the dev build. Dev builds lie: they load JS from Metro (never compiling the production bundle), run with #if DEBUG native guards disabled, and reuse a stale local prebuild, so the crash you ship is, by construction, one the dev loop cannot show you. Teams then discover it 15 cloud-build minutes at a time, or worse, in a store review. This skill bans that: nothing goes to a cloud build, TestFlight, or review without passing the gates below, and every release-only failure is debugged from the crash log, never from theory.
This is the close of the Mobile Kit lifecycle: mobile-scaffold → mobile-architecture → mobile-design → mobile-motion → mobile-audit → mobile-ship. This skill owns build, release, and submission only. Design quality is mobile-audit's hold; day-one foundations (env binding, toolchain pins) are mobile-scaffold's gates. When TRIAGE finds a foundation gap, route the fix there and gate here.
Modes
| Mode | When | What happens |
|---|---|---|
| BUNDLE | Before every cloud build | Run scripts/preflight.mjs (static checks + the production bundle). ~2 min locally vs 15+ per failed cloud build. |
| SMOKE | Before TestFlight / any release | The release-build verification sequence from references/release-verification.md. Dev-mode passes do not count. |
| STORE | Before submission (start in week 1 via mobile-scaffold S9) |
Walk the checklist in references/store-submission.md. |
| TRIAGE | A build failed or a release build crashes | Crash-log first. Match against references/eas-failure-catalog.md before forming any theory. |