The steps to publish an app to the App Store
- Apple Developer account. You enroll in the Apple Developer Program as an individual or an organization. The program costs $99 per year.
- App record in App Store Connect. App Store Connect is Apple’s dashboard for your app’s name, bundle ID, pricing, agreements and tax details.
- Test build in TestFlight. TestFlight is Apple’s app for beta builds. You install the app on your iPhone and invite up to 10,000 external testers by email or public link.
- Store listing. Name, subtitle, description, keywords, screenshots for each device size, icon, age rating and privacy policy link.
- Privacy details. You tell Apple what data the app collects and why. The answers appear on your app’s App Store page.
- Submission for review. Apple’s App Review team tests the app against the guidelines. The result arrives by email and in App Store Connect.
- Release. After approval, you release the app right away, on a set date, or in phases to part of your users.
The Apple Developer account guide covers enrollment, D-U-N-S and TestFlight in detail.
How long App Review takes
Apple says App Review typically reviews at least 50% of submissions in under 24 hours and 90% in under 48 hours. A first submission often takes longer, because the reviewer may send questions before a decision.
You can request an expedited review for a critical bug fix or for a launch tied to an event. Apple asks for the steps to reproduce the bug, or the event name, date and your link to it.
Why Apple rejects apps
Apple publishes the App Store Review Guidelines. These are the most common reasons for rejection:
| Guideline | What Apple flags | How to fix it |
|---|---|---|
| 2.1 App Completeness | Crashes, empty screens, placeholder text, or no demo account for a login | Test every flow in TestFlight and include a working demo account |
| 2.3 Accurate Metadata | Screenshots or description that don’t match the real app | Rebuild the listing with screens of the app in use |
| 4.2 Minimum Functionality | The app is a repackaged website | Add iPhone features: notifications, camera, widgets, offline use |
| 5.1.1 Privacy | No privacy policy, or no way to delete the account inside the app | Publish the policy and add account deletion in the app |
| 3.1.1 In-App Purchase | Digital features unlocked outside Apple’s payment system | Use In-App Purchase where the rule requires it |
| 2.5 Software Requirements | Private APIs, or required-reason APIs missing from the privacy manifest | Fix the code and declare the APIs in the manifest |
The page on App Store rejection explains each case and how to reply or appeal.
What the publishing service includes
Carvalho Karsten works in three situations.
You have not published yet. The team creates or organizes your developer account, registers the app in App Store Connect, builds the store listing and makes the first submission. You follow every step through TestFlight.
Apple rejected your app. The team reads Apple’s message, fixes the code or the listing and replies to App Review. The work continues until approval.
You built the app with AI. Tools like Lovable, Cursor, Rork and Bolt produce an app fast, but App Review has its own rules. The page on publishing an AI-built app shows what is usually missing.
What you get
- The app published on your account, under your name or your company’s name.
- Access to App Store Connect and TestFlight, with an explanation of each screen.
- A store listing in English, Portuguese or Spanish, matching your market.
- A written log of every change made to the app and the reason for it.
Price of the publishing service. The price depends on the state of your app and account. The review shows what is missing and what each step costs before any work starts.
When to ask for help
You can publish an app on your own if you have a Mac, time to learn App Store Connect and an app that already meets the guidelines. Many developers do.
Help pays off when the account enrollment is stuck, when Apple rejected the app more than once, or when the app came from an AI tool and you don’t read the code. Send the rejection message or a link to your build, and Carvalho Karsten replies with the next steps.