Complete Guide to Publishing on the App Store for Indie Developers: A Practical Breakdown from Development to Review Submission

A practical guide for indie developers covering the full App Store publishing workflow from development to review submission.
An indie developer shares how he used AI tools like Cursor and Claude Code to complete an app from development to review submission in under a month. The article breaks down the publishing workflow into four modules: App Store Connect metadata configuration, monetization and tax/subscription setup, product page visual asset creation, and build upload/submission — emphasizing that finishing features is just the beginning, while compliance and testing verification are equally critical.
Introduction: Finishing the Features Is Just the Beginning
For indie developers, completing an app's feature development is often only half the battle. Before actually submitting to App Store review, there's a mountain of fragmented but critical preparation work to be done. One developer working at a foreign company used his after-work hours to independently build his first app, completing the entire process from zero to review submission in under a month. He broke down the entire publishing workflow into four major modules, providing a practical reference guide for fellow beginner indie developers.

Development Tool Selection: Cursor + Claude Code Combo
Regarding development tools, the author's primary AI coding IDE is Cursor, which he renewed during a 50% off promotion. During the May Day holiday, he also successfully subscribed to Claude Code and has been using it steadily for half a month.
Cursor is a deeply customized AI coding IDE built on VS Code, with built-in capabilities for code completion, conversational programming, and codebase context understanding. It's widely regarded as one of the most popular AI editors among indie developers in 2024-2025. Claude Code is Anthropic's command-line AI programming assistant that can directly understand entire project structures in the terminal, execute file operations, and run commands — excelling at complex cross-file refactoring tasks. The combination creates a complementary workflow: Cursor is ideal for daily interactive coding and rapid iteration, while Claude Code shines when large-scale code generation, architectural adjustments, or automation scripting is needed. This "IDE + Terminal Agent" dual-tool strategy is becoming the mainstream paradigm for AI-assisted development.
Regarding the Claude Code subscription process, there are several key steps:
- Overseas phone number verification: You can purchase overseas phone verification codes on Xianyu (闲鱼) for just a few yuan
- US region Apple account: Subscribe through the App and pay with gift cards
- IP cleanliness: Keep VPN fixed to the same region across all devices — this is key to maintaining account security
App Store Connect App Record & Metadata Configuration
Basic Information
When creating a new app in App Store Connect, you need to fill in the name, primary language, SKU, and other attributes, and select a registered Bundle ID. Here's a detail that's easy to trip over: the Bundle ID must exactly match the Bundle Identifier in your Xcode project, otherwise the uploaded build won't match.
A Bundle ID (Bundle Identifier) is the globally unique identifier for each application in Apple's ecosystem, using a reverse domain name format (e.g., com.example.myapp). Once registered in the Apple Developer Portal, it becomes bound to the App Store Connect app record, push notification certificates, Provisioning Profiles, and more. If the Bundle Identifier in your Xcode project doesn't match what's registered in Connect, the Xcode Archive upload process might successfully push to Apple's servers, but the build will be in an "unselectable" state, unable to associate with any app record. The SKU is a developer-defined stock identifier that isn't displayed publicly — it's primarily used to distinguish different products in financial reports.
Privacy Policy & Compliance Requirements
You'll also need to prepare the following:
- Technical support URL
- Privacy policy URL (required field — must be a real, accessible HTTPS link)
- Copyright information
- Age rating
The author's approach was to create the privacy policy, terms of service, and support documentation as static HTML pages, deployed on an existing web service (using the Render platform), sharing the same site as the backend API — eliminating the cost of maintaining a separate static site.
Render is a modern cloud hosting platform supporting static sites, web services, background workers, and other deployment types. It's popular among indie developers for its clean configuration and free tier. Deploying privacy policies and terms of service as static HTML pages is a common practice for indie developers — compared to using public Notion pages or Google Docs links, self-hosted HTTPS pages are less likely to have their link validity questioned during review. The author's approach of sharing these static pages with the backend API on the same Render service essentially leverages Render's static resource routing capability — within a single Web Service, /api paths point to backend logic while /privacy, /terms, and similar paths directly serve static HTML files, achieving "one service, multiple purposes" cost optimization.
Important note: Apple has added AI transparency requirements. If your app integrates third-party AI services and uses user data, you must explicitly disclose this in your privacy policy. This is a new review focus area — ignoring it may lead to rejection.
Starting in the second half of 2024, Apple has progressively strengthened review requirements for AI features in the App Store Review Guidelines. According to the updated Section 5.6.4, if an app uses generative AI or machine learning models to process user input, developers must disclose in their privacy policy: whether data is sent to third-party servers, whether it's used for model training, and how users can control their data. This policy emerged against the backdrop of tightening global AI data privacy regulations, including the EU AI Act and various US state privacy legislation. For indie developers integrating third-party LLM services like OpenAI API or Claude API, this means you must explicitly list data flows in your privacy policy, or you'll very likely receive a Metadata Rejection notice during review.
Monetization Configuration: Tax, Subscriptions & Sandbox Verification
Settlement & Tax Setup
In the "Agreements, Tax, and Banking" module of App Store Connect, you need to complete payment account and identity binding, including filling in bank account information.
In-App Subscription Product Configuration
If your app involves paid subscription features, you need to create subscription groups in Connect, configure auto-renewable products, and complete localized descriptions, pricing, and sales territory information. These configurations are closely tied to the app's functionality — it's recommended to prepare them in parallel with development.
Sandbox Testing Verification Process
This is the most easily overlooked yet most critical step:
- Create a Sandbox Apple ID in the "Users and Access" module
- Complete the entire purchase flow on a real device using that account
- Verify the blocking logic when not subscribed
- Verify the unlock logic after subscribing
- Test the restore purchases functionality
Apple's Sandbox Environment is a payment simulation system isolated from the production environment, allowing developers to test in-app purchases and subscription flows without real charges. Sandbox Apple IDs are virtual accounts created specifically for testing in App Store Connect's "Users and Access" section — they cannot be mixed with real Apple IDs. Under the StoreKit 2 framework, auto-renewable subscriptions in the sandbox environment run on accelerated time — for example, monthly subscriptions renew every 5 minutes, and annual subscriptions renew every hour — making it convenient for developers to quickly verify renewal, expiration, grace period, and other edge cases. It's worth noting that while StoreKit Testing in Xcode (introduced after Xcode 14) supports local simulation, it bypasses Apple's server verification chain and cannot cover real receipt validation and Server Notifications V2 scenarios. Apple's review team relies on real sandbox environment behavior.
Important reminder: Apple reviewers will actually walk through the entire purchase flow, so this must be tested and verified on a real device — you cannot rely solely on the Xcode simulator.
Product Page Visual Assets: Icon & Store Screenshot Creation
App Icon/Logo Design
The author's method was to first collect a large number of designer works on Xiaohongshu (小红书) as references, not limited to the same category, but focusing on layout rhythm, whitespace usage, color tendencies, and other design language elements. After collecting enough references, you'll have a much clearer idea of what style best matches your app's tone.
App Store Screenshot Creation
Recommended tools and workflow:
- App Launch (online web tool): For finding layout inspiration and previewing screenshots in context
- Figma: For fine-tuning after confirming the overall look
- AI tools: For HD upscaling and layout enhancement
- App Store Screenshots tools: For generating all required Apple multi-size adaptations at once
Core Principles for Screenshot Design
The essence of store screenshots isn't showing off — it's about reducing comprehension cost and building trust. Focus on:
- Logical display sequence
- Clear copy hierarchy
- Visual style consistency
- The first three screenshots must maximize exposure of user pain points and core features
Users spend extremely little time browsing the App Store — the first three images determine whether they'll tap into the detail page.
Build Upload & Final Review Submission Steps
Once the code has no new changes, the logo is configured, and monetization setup is complete, you can proceed to the final step:
- Archive: Package the build in Xcode
- Upload build: Push the IPA to Apple's servers
- Associate version: Return to App Store Connect and select the build in the app record
- Submit for review: Confirm all information is correct and submit
Archive is the critical step in Xcode that compiles source code into a distributable binary package. After executing Product > Archive, Xcode compiles the project in Release configuration, generating an .xcarchive file stored in the Organizer. Through the "Distribute App" option, developers can choose to upload the build to App Store Connect (via Apple's Transporter service). During upload, Apple's servers automatically perform a series of pre-checks: validating signing certificate validity, checking required fields in Info.plist, scanning for private API calls, and confirming the binary architecture includes required arm64 support. If pre-checks fail, developers receive an email notification with specific errors. For teams using CI/CD, the same process can be accomplished through the xcodebuild command-line tool or automation solutions like fastlane, but for first-time indie developers, Xcode's graphical interface workflow is more intuitive and controllable.
The significance of this step is verifying that the project can actually produce a legitimate IPA package and successfully push it to App Store Connect. Before this point, everything exists only in a local state.
If any steps are incomplete, the system will prompt you. You can also distribute to TestFlight for testers first, though the author admits he was lazy and skipped this step, submitting directly for review.
TestFlight is Apple's official beta testing distribution platform, allowing developers to distribute builds to internal teams or external testers before official release. Internal testing supports up to 100 team members without Apple review; external testing supports up to 10,000 users but requires a simplified Beta App Review for the first distribution. TestFlight builds are valid for 90 days — after expiration, testers can no longer use them. For indie developers, TestFlight's value lies not only in functional testing but also in collecting real user crash logs and usage feedback — TestFlight has built-in screenshot feedback functionality where testers can annotate issues directly within the app and submit them. Although the author skipped this step, for apps with complex features or payment integration, real-device verification during the TestFlight phase often reveals issues that could lead to rejection during review.
Summary: Publishing Insights for Indie Developers in the AI Era
From start to review submission took less than a month, using just a few weekends and fragmented after-work time. With AI coding tools like Cursor and Claude Code, you can build your own app even without knowing how to code — if you have an idea, you can get started. The barrier to entry is genuinely very low now.
But it's important to recognize clearly: completing feature development is just the starting point. Pre-launch work on compliance, monetization, visual assets, and testing verification is equally time-consuming and critical. Understanding these processes in advance can help you avoid the frustration of repeated rejections in the final mile.
Key Takeaways
- Before App Store publishing, four major modules must be completed: metadata management, monetization configuration, visual asset preparation, and build upload
- In 2025, Apple added AI transparency requirements — integrating third-party AI services requires explicit disclosure in the privacy policy
- Sandbox testing must complete full purchase flow verification on a real device — you cannot rely solely on the simulator
- The first three store screenshots must maximize exposure of user pain points and core features — the goal is reducing comprehension cost
- With AI coding tools, indie developers can complete the entire process from zero to review submission within one month
Related articles
TutorialsCursor + Codex Dual-IDE Collaboration: A Practical Methodology for Open-Source Project Customization
A complete methodology for open-source project customization based on real-world experience, detailing the Cursor+Codex dual-IDE workflow, seven-stage process, MVP validation, and AI source code reading techniques.
TutorialsCursor Multi-Agent in Practice: Building a Full-Stack Next.js Blog in 50 Minutes
Build a full-stack blog in 50 minutes using Cursor IDE's multi-Agent mode with Next.js, Clerk auth, and Supabase. Learn the 4-phase AI Agent workflow and key integration pitfalls.
TutorialsBuilding an AI Software Factory from Scratch: A Cursor Engineer's Hands-On Experience with Multi-Agent Collaboration
Cursor engineer Eric shares practical insights on building an AI software factory: automation levels, guardrail design, parallel Agent management, and scaling to 1000+ Agents for 24/7 development.