The gauntlet
Your app runs on localhost. Here's everything between you and the App Store.
You built an app with your agent and it runs great on your machine. Then you try to ship it — and hit a wall of unfamiliar steps that have nothing to do with code. Here's the whole path, in order, so none of it surprises you.
1. A developer account (and maybe a company)
Apple Developer Program is $99/yr; Google Play is a $25 one-time fee. Note: new rules can put your name and home address on your public store listing — forming an LLC keeps it private (more on that here).
2. Signing keys & identifiers
iOS needs an App Store Connect API key (a .p8 file) plus a bundle ID — which is permanent once set. Android needs a keystore and a service-account key. These let your tools submit on your behalf, and they should stay on your machine.
3. The app record + compliance forms (no API)
You create the app record by hand in App Store Connect — Apple's API famously rejects this step. Then come the forms with no automation: App Privacy "nutrition labels" (iOS), and Data Safety, Content Rating (IARC), and Target Audience (Google). You fill them with exact answers, and getting them wrong is a common rejection.
4. Build, sign, upload
iOS builds require a Mac with Xcode (archive → IPA → TestFlight). Android produces a signed AAB. Important: TestFlight is testing, not submitted — getting on TestFlight is not the same as being live.
5. Review
Apple review is often 24–48 hours. Google adds a twist: new personal accounts must run a 12-tester, 14-day closed test before they can publish to production. First-timers get rejected often — privacy mismatches, "minimum functionality," in-app-purchase metadata.
6. Live — and then the real work
Being live in a store nobody visits isn't a launch. Your first users, your first ratings, and real feedback are the actual goal. (See getting your first 100 users.)
This is the maze FoxDog runs for you — guided, step by step, with the exact answers for every form, on your own developer accounts.
Skip the maze. FoxDog gets your app from localhost to live.
Create your free account →