Shipping my first mobile app: what an operations leader learned taking PromptSpend to iPhone and Android An operations veteran with 15 years of P&L experience shipped PromptSpend, an open-source LLM cost calculator, to both the Apple App Store and Google Play. The app fetches a live catalog of roughly 80 models from 12 providers, performs token counting entirely on-device so pasted prompts are never uploaded, and shares a cost engine with the project's web app, API and MCP server. The developer reported that app store account requirements—including Apple's individual-to-organization conversion and Google Play's 12-tester, 14-day closed test rule for personal accounts—proved harder than the code itself. I spent 15 years running operations and P&Ls, not writing apps. In August I set out to put PromptSpend, my open-source LLM cost calculator, on iPhone and Android. It is now live on both stores. This is what the gap between "the web version works" and "a stranger can install it" actually looked like. PromptSpend answers one question before you ship an AI feature: what will this cost to run? Paste a representative conversation, choose your traffic, and see the cost per conversation, day, month and year across up to four models. It reads the same catalog as promptspend.com: about 80 models from 12 providers, re-checked every morning, with every price carrying the source it came from and the date it was last confirmed. The easy path was to bundle a pricing file. I didn't. A bundled table is correct on the day you build it and quietly wrong every day after, and the whole point of PromptSpend is that the numbers are current. The app fetches the live catalog on launch. If it can't, it uses the last good copy for up to 24 hours with a visible warning, and after that it refuses to calculate. A missing number is better than a confident wrong one. People paste real prompts into a cost tool, and real prompts contain real business data. Token counting happens on the device. Nothing you paste is uploaded or saved, and there is no account, ad SDK or analytics identifier. The shareable outputs a summary, a four-model comparison, a CSV, a receipt are built from counts and costs, never from your text. Expo and React Native, with the cost engine extracted into a shared package so the web app, the API, the MCP server and the phones all run identical arithmetic. Builds run on Expo's cloud service. I stayed on the free tier, which caps iOS builds per month, so every iOS build had to be release-ready. That constraint turned out to be good discipline: batch the fixes, exhaust the local and Android checks first, then spend a build. The automated suite was green the whole time. Physical-device QA on an iPhone, an iPad and a $103 Galaxy A15 still found: Lesson: tests prove the logic. Only a cheap physical phone proves the layout. I expected the code to be the hard part. The store accounts were. I enrolled with Apple as an individual, then converted to an organization, and iOS builds stalled until Apple finished that migration. Google Play requires personal developer accounts created after November 2023 to run a closed test with at least 12 opted-in testers for 14 continuous days before production access; organization accounts are exempt, so I converted that account too. That meant a D-U-N-S number, organization identity checks and website verification. Budget weeks for this, not days. Estimates are estimates, not bills, and the cheapest model is not automatically the right one. If a price is wrong, that is the most serious bug this project can have, so please open an issue. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.