To create an iPhone app, build it in Apple’s free Xcode on a Mac with Swift and SwiftUI, then test on the Simulator or your iPhone using a free Apple Account. Sharing it through TestFlight or the App Store needs the Apple Developer Program (US$99 a year, per Apple).
You have an idea for an app and an iPhone in your pocket, but not sure what to buy, what to learn first, or how an app gets from your Mac onto the App Store.
Windows PCs and Terms to Know
The shopping list is shorter than most people expect, and most of it is free.
- A Mac. Xcode, Apple’s app for writing, building and testing apps, runs only on macOS. Each Xcode release needs a minimum version of macOS, and Apple lists them on its Xcode system requirements page. Apple’s pages list Xcode 27 as of November 2026, and that release requires a recent version of macOS Tahoe. Check the table against the macOS version on your Mac (Apple menu > About This Mac) before you plan anything else.
- Xcode. Free from the Mac App Store. The Xcode page describes what is included: the code editor, SwiftUI Previews, simulators for testing, Instruments for performance checks and more.
- A free Apple Account. The same account you use for the App Store or iCloud works. You sign in with it inside Xcode to run apps on your own devices. If you are not sure which address you use, see how to find your Apple Account on an iPhone.
- An iPhone (optional at first). You can build and test entirely in the Simulator. A real iPhone helps later for checking the camera, motion, performance and how the app feels in your hand. You also need a cable or a network connection to pair it with your Mac.
- Apple Developer Program membership (later). Only when you are ready for testers or the App Store. More on that below.
What if you only have a Windows PC?
Xcode is not available for Windows, so you cannot build a native iPhone app with Apple’s tools on a PC alone. Your realistic options are to get access to a Mac (any Mac that meets the requirements for a supported Xcode release), or to use a cross-platform or browser-based app builder. Even then, getting an app onto the App Store still needs an Apple Developer Program membership and goes through the same App Review described later. If you plan to write Swift code, a Mac is the straightforward route.
Terms you will see
- Swift: Apple’s programming language for its platforms.
- SwiftUI: Apple’s framework for building screens by describing them in Swift code. Xcode shows a live preview as you type.
- Simulator: a virtual iPhone that runs on your Mac.
- Bundle identifier (bundle ID): a unique name for your app, usually written like com.yourname.appname. Apple uses it to tell apps apart.
- Code signing: the process that proves an app came from you and has not been changed. Xcode handles it for you when “Automatically manage signing” is on.
- App Store Connect: Apple’s website for managing apps you distribute, beta testers, App Store listings and review submissions.
Pick Your Route: Xcode, Swift Playground or an App Builder
There are three common ways to start, and the right one depends on how much you want to learn and how custom the app needs to be.
| Route | What it is | Good fit if | Trade-offs |
|---|---|---|---|
| Xcode with Swift and SwiftUI | Apple’s full development tool on a Mac | You want a real native app and are willing to learn to code | Steeper learning curve; needs a Mac |
| Swift Playground | Apple’s free learning and app-building app for iPad and Mac | You are brand new to coding, or you want to build on an iPad | Fewer tools than Xcode; you can move a project into Xcode later |
| No-code or low-code builder | Third-party services that assemble apps from templates or visual blocks | You need a simple app fast and do not want to code | Less control, ongoing subscription costs, and you still need your own Apple Developer Program membership to publish |
Apple’s Swift Playground page says the app is free on the App Store for iPad and Mac, lets you open projects in Xcode, and can even submit an app to App Store Connect. That makes it a gentle starting point that does not lock you in. The rest of this article follows the Xcode route because it is the one Apple documents in full, and the later steps (TestFlight, App Store Connect and App Review) apply no matter how the app was built.
If you are comparing builders, AI app generators or freelancers, judge them on whether you will own the code and the App Store listing, what they charge per month, and whether they can produce an app that meets Apple’s minimum functionality rule (covered in the review section). Hiring a developer is also an option; you would still create the Developer Program account yourself and add them to your team.
Plan a Small First App
The biggest reason first apps stall is scope. Before you open Xcode, write one sentence that says who the app is for and the single thing it does. Then list the screens. A good first app has one to three screens and no accounts, servers or payments.
Here is a worked example. Quinlan, a high school soccer coach, wants an app that tracks how many minutes each player has been on the field during a game. His sentence: “A timer app that shows each player’s minutes so substitutions stay fair.” His screens: a roster list, a game screen with a start and stop button beside each name, and a summary at the end. No login, no cloud sync. Everything is stored on the phone. That is a realistic first project, and it can grow later.
Three planning questions save rework later:
- Does it do something a website cannot? Apple’s App Review Guidelines (section 4.2, minimum functionality) reject apps that are little more than a repackaged website. Plan at least one feature that uses the phone well, such as offline use, notifications or the camera.
- Will it collect personal data? If so, you will need a privacy policy and must fill in privacy details on the App Store. If users can create accounts, the guidelines require that they can also delete their account from inside the app.
- How will it make money, if at all? Apple’s iOS get started page suggests choosing a business model early: free, free with in-app purchases (often called freemium), or paid. The choice affects how you design the app, so decide before you build.
Install Xcode and Learn Swift With Apple’s Free Tutorials
- On your Mac, open the App Store app and search for Xcode.
- Click Get, then Install. Xcode is a large download, so plug in your Mac and make sure you have plenty of free storage.
- Open Xcode from the Applications folder. On first launch it may ask to install additional components or platform support for iOS; accept so you can build iPhone apps and use the Simulator. If you skip it, you can add platforms later in Xcode’s settings under Components, or by clicking Get when Xcode prompts you.
Once Xcode is installed, start with Apple’s own lessons. They are free and written for beginners:
- Develop in Swift tutorials: Apple describes these as an introduction to app development with Swift and Xcode for anyone learning.
- Introducing SwiftUI: hands-on projects that build real screens with SwiftUI.
Older articles often tell you to drag buttons onto a storyboard with Interface Builder. That approach still exists for UIKit apps, but Apple’s current beginner pathway points to SwiftUI, where you describe the screen in code and see the result update in the preview canvas beside it. For a new app, start with SwiftUI.
Recent Xcode releases also include coding intelligence features that can work with a model you choose, according to Apple’s Xcode page. They can explain or suggest code, but you still need to understand what the code does, because you are responsible for fixing it when App Review or a user finds a problem.
Create Your First Xcode Project
These steps match Apple’s article on creating an Xcode project for an app.
- Open Xcode. In the Welcome to Xcode window, choose App from the new project options, or choose File > New > Project from the menu bar.
- If you want an iPhone-only project instead, choose Choose Template from the same menu, select iOS, pick App under Application, then click Next.
- Enter a Product Name, such as MinuteTracker. Apple treats this as the app name people see on the App Store and on the Home Screen; you can change it later in the project’s General pane.
- Choose a Team if you have signed in with your Apple Account. You can leave it empty for now and set it later.
- Enter an Organization Identifier, usually a reversed domain such as com.quinlancoaching. Xcode combines it with the product name to create the bundle ID (for example com.quinlancoaching.MinuteTracker). If you have no website, any unique reversed name you control works, but pick it carefully because it is hard to change after you publish.
- Make sure the interface is SwiftUI and the language is Swift, then click Next.
- Choose a folder for the project and click Create.

Xcode opens the project window. On the left is the Project navigator with your files. In the middle is the editor, where a file usually named ContentView.swift holds the starting screen. On the right, the canvas shows a live preview of that screen. At the bottom, the debug area shows messages when the app runs. Change the text inside the quotes in ContentView.swift and watch the preview update; that quick loop is how most SwiftUI work happens.
Run Your App in the Simulator
Apple covers this in running your app on simulated or physical devices.
- At the top of the Xcode window, check that your app’s scheme is selected (it usually is for a new project).
- Click the run destination menu next to it and choose a simulated iPhone model.

- Click the Run button (the triangle) or choose Product > Run. Xcode builds the app and launches it on the simulated iPhone.
- Use the app with your mouse and keyboard. When you are done, click the Stop button (the square) in Xcode.
Apple’s current Xcode documentation describes simulators as running within a Device Hub, so the window or label you see may differ from older screenshots online. If no simulators appear in the run destination menu, Xcode may still need iOS platform support; look for a Get button or open Xcode’s Components settings.
Keep the Simulator’s limits in mind. Apple notes that simulators do not replicate the performance or hardware features of a real device. Speed on a powerful Mac is not a guide to speed on an older iPhone, and features such as some sensors behave differently or are not available. Test on a real phone before you share the app.
Run Your App on Your Own iPhone for Free
This is the step many guides get wrong: you do not need to pay Apple to put your own app on your own iPhone. A free Apple Account gives you what Apple calls a Personal Team.
Sign in and set up signing
- In Xcode, choose Xcode > Settings, then open Apple Accounts and sign in with your Apple Account.
- In the Project navigator, click your project, select the app target and open the Signing & Capabilities tab.
- Turn on Automatically manage signing (or click Set Up Signing if Xcode shows that button) and choose your Personal Team.
- Make sure the bundle identifier is unique. If Xcode reports that it is already in use, change it slightly, for example by adding your initials.

Connect your iPhone and turn on Developer Mode
Developer Mode is an iPhone setting that allows apps you build in Xcode to run. Per Apple’s Developer Mode article, the switch only appears after you start pairing the phone with a Mac, or if it was paired before.
- Connect the iPhone to your Mac with a cable. If the phone asks whether to trust the computer, tap Trust and enter your passcode.
- In Xcode, open the run destination menu. If your iPhone is not listed, choose Manage Devices and pair it in Device Hub, which also tells you when Developer Mode needs to be turned on. Then choose your iPhone as the run destination. If Xcode shows a Register button under Signing, click it. On the first run, Xcode registers the device and creates a provisioning profile (the file that permits your app on that phone).
- On the iPhone, open Settings > Privacy & Security, scroll to the Security section and turn on Developer Mode.

- An alert explains the change. Tap Restart.
- After the phone restarts, swipe up when prompted, tap Enable and enter your passcode.
- Back in Xcode, click Run. The app installs and opens on your iPhone.
Apple notes that Developer Mode does not affect installing apps from the App Store or TestFlight. It does reduce the phone’s security, which is why iOS warns you before the restart, so turn it off when you finish developing: go to Settings > Privacy & Security, turn off Developer Mode and restart the iPhone. After that, you cannot run apps from Xcode on the phone until you turn it back on.
Free account limits
Apple’s membership comparison page lists the Personal Team limits:
- Provisioning profiles expire seven days after they are issued. After that the app stops launching until you build and install it again from Xcode.
- Up to 3 devices and up to 10 App IDs, each of which also expires after seven days.
- Up to 3 apps installed per device.
- No App Store Connect access and no distribution to other people.
For learning and personal tools, those limits are workable. Quinlan, for example, could build his minute tracker for free and reinstall it from his Mac each week during the season. Once he wants assistant coaches to use it, he needs the paid program.
Design and Build the Real App
With the basic loop working (edit, preview, run), you can build the actual features. A few Apple resources and habits make the difference between a demo and an app people keep:
- Follow the Human Interface Guidelines. Apple’s Human Interface Guidelines explain how iPhone apps should look and behave: navigation, text sizes, controls, colors and more. Apps that follow them feel familiar to iPhone users.
- Use Previews constantly. SwiftUI Previews let you check several screen sizes, dark mode and larger text without running the full app.
- Plan for accessibility. Apple’s get started page highlights accessibility. Support Dynamic Type (users’ preferred text size) and give buttons labels that VoiceOver can read. SwiftUI does much of this by default if you use standard controls.
- Handle privacy properly. If your app asks for the camera, location, contacts or similar, iOS shows a permission prompt with a purpose string you write. Make it specific (“to scan team rosters”), and ask only when the feature is used.
- Store secrets safely. If your app signs people in, Apple’s pathway points to passkeys and the keychain rather than storing passwords yourself.
- Think about other languages early. Apple’s pathway covers localization. Keeping text out of your code from the start makes translation easier later.
- Remember iPad. One app can support iPhone and iPad from the same code, and per Apple’s submission page, iPhone and iPad apps are also offered on Apple silicon Macs and Apple Vision Pro by default. You can change that availability in App Store Connect if your app does not suit those devices.
Test on your own iPhone regularly as you go, not just at the end. Try it with poor network signal, with the largest text size and after the phone has been locked for a while. Those are the moments where crashes and broken layouts show up.
Join the Apple Developer Program
When the app works and you want other people to use it, enroll in the Apple Developer Program. Apple lists it as a US$99 annual membership; fees may be shown in local currency in your region, so check the enrollment page. Membership adds:
- Distribution through the App Store.
- Beta testing with TestFlight.
- Access to App Store Connect, App Analytics and capabilities such as CloudKit, Game Center and In-App Purchase.
- Code-level technical support from Apple.
Enroll from the programs page using the same Apple Account you use in Xcode. The enrollment flow may offer individual and organization options; look at which name will appear as the seller before you choose. According to Apple’s distribution documentation, once you join, Apple creates an App Store Connect account for you, and you can start uploading builds.
After enrolling, go back to Xcode’s Signing & Capabilities tab and switch the Team from your Personal Team to your new Developer Program team. The Personal Team limits listed earlier are specific to free accounts, so builds signed with the paid team are not bound by them.
Create the App Record in App Store Connect
Before you upload your first build, the app needs a record in App Store Connect. Per Apple’s help page on adding a new app, you need the Account Holder, Admin or App Manager role (as an individual member, you are the Account Holder). Before the + button works, the Account Holder must accept the latest agreement in the Business section of App Store Connect.
- Sign in to App Store Connect and click Apps.
- Click the + button and choose New App.
- Select the platform (iOS) and enter the app’s name as it should appear on the App Store, its primary language, the bundle ID (the same one used in Xcode) and a SKU. The SKU is an internal reference code that customers never see, such as MINUTES001.
- Choose the user access setting (Limited or Full Access) for your team members, then click Create.
The App Store name must be available, so have a second choice ready. If you skip this step, Xcode will ask for the details and create the record for you during your first upload.
Upload a Build From Xcode
Apple’s guide to distributing your app for beta testing and releases describes the upload from Xcode:
- In Xcode, choose your scheme and a run destination from the toolbar. For an iPhone app, choose a generic iOS device or a connected iPhone.
- Choose Product > Archive. Xcode builds the app and creates an archive, which appears in the Archives organizer. (You can also open it with Window > Organizer.)
- Optional but useful: select the archive and click Validate App to run Apple’s automated checks before uploading.
- Select the archive and click Distribute App.
- Choose TestFlight & App Store to upload a build you can test and later submit. Choose TestFlight Internal Only instead if this build should only go to your own team.
- Click Distribute. Xcode signs, packages and uploads the build.
Per Apple’s upload builds help page, App Store Connect then processes the build and emails you when it is ready. Xcode is not the only uploader: the page also lists Transporter (a Mac app), the altool command line tool and Swift Playground. Xcode’s distribution flow also offers a “Manage version and build number” option, which lets Xcode update the build number in your archive for you.
Test With TestFlight Before You Launch
TestFlight is Apple’s beta testing service. Testers install the free TestFlight app on their iPhone, accept your invitation and get your build, plus updates as you upload them. Apple’s TestFlight page lists two kinds of testers:
| Tester type | Limit | Who they are | Review needed? |
|---|---|---|---|
| Internal | Up to 100 | Members of your App Store Connect team with the Account Holder, Admin, App Manager, Developer or Marketing role | No |
| External | Up to 10,000 | Anyone you invite by email or public link | Yes, the first build added to a group goes to App Review for TestFlight |
To start external testing, App Store Connect asks for a beta app description and review information, such as contact details and a demo account if your app needs a login. Once a build is approved for TestFlight, later builds added to a group are sent for review automatically.
A practical plan: send the first build to yourself and one or two internal testers, fix the obvious problems, then open it to a small external group. Quinlan, for example, could invite the parents of his own team as external testers for two weekends of games before he submits to the App Store. Testers can send feedback and screenshots from the TestFlight app, and you can read it in Xcode’s Organizer or App Store Connect.
Prepare the App Store Product Page
Your App Store listing lives in App Store Connect, under the version you plan to release. Apple’s iOS submission page lists what the product page needs:
- Name, icon and description. The icon comes from your Xcode project; the name and description are typed in App Store Connect.
- Screenshots and optional app previews (short videos). They must show the real app. Take them from the Simulator or your iPhone; App Store Connect shows the required sizes.
- Keywords, which help people find the app in search.
- Age rating, set by answering a questionnaire about the app’s content.
- Privacy details, describing what data the app collects and how it is used. Apple requires these for new apps and for every update, and guideline 5.1.1 also requires a privacy policy link in App Store Connect and inside the app.
- Accessibility information, describing which accessibility features the app supports.
- Pricing and availability, including the price (or free) and which countries and regions. Apple says the App Store reaches 175 storefronts and supports 50 languages.
Apple also states that apps must be built with a recent Xcode and SDK, and it announces new minimum requirements on the submission page ahead of time. Check that page before your first submission, because an outdated Xcode can cause an upload to be rejected before a human ever reviews it.
Submit Your App for App Review
Every App Store app is reviewed by Apple. Read the App Review Guidelines before you submit; they are grouped into five areas (Safety, Performance, Business, Design and Legal) and open with a “Before You Submit” checklist.
Submission steps
These follow Apple’s help page on submitting an app. You need the Account Holder, Admin or App Manager role.
- In App Store Connect, click Apps and select your app.
- Select the version in the sidebar and fill in any missing information.
- In the Build section, choose the build you uploaded (usually the one you tested in TestFlight).
- Click Add for Review. The status changes to Ready for Review.
- Click Submit for Review. The status changes to In Review once Apple starts looking at it.
How long review takes
According to Apple’s App Review page, on average at least half of submissions are reviewed in under 24 hours and 90 percent in under 48 hours. If your live app has a critical bug, you can request an expedited review for the fix.
Common reasons first apps are rejected
- Incomplete app (guideline 2.1). Apple says this section accounts for over 40 percent of unresolved issues. Crashes, broken links, placeholder text and missing information all count. Submit a finished version that you have tested on a real device.
- No working demo account. If the app needs a login, put a working test account in the review notes, and keep any backend service switched on during review.
- Minimum functionality (guideline 4.2). Apps that are just a website in a wrapper, or that do very little, are often rejected.
- Privacy (guideline 5.1.1). You need a privacy policy link both in App Store Connect and inside the app, clear permission purpose strings, and in-app account deletion if users can create accounts.
- Misleading screenshots or metadata. Screenshots must show the actual app.
If your app is rejected
Rejection is common and usually fixable. Read the message in App Store Connect carefully; it cites the guideline involved. You can reply to App Review there to ask questions or explain a misunderstanding. Fix the problem, upload a new build if the code changed, and resubmit. If you believe the decision is wrong, Apple lets you appeal to the App Review Board, once per submission.
After Launch: Updates and Earning Money
Once approved, the app can go live on the App Store; App Store Connect may let you choose whether it releases right away or later, so look for the release setting on your version page. From then on, every update follows the same loop: change the code, raise the version or build number, archive, upload, test in TestFlight, then submit the new version for review.
If you charge for the app or sell in-app purchases, open the Business section of App Store Connect, where the Account Holder signs the Paid Apps Agreement and provides the tax and banking details it asks for. Apple says that agreement must be active before you can submit paid apps or In-App Purchases. Xcode’s Organizer shows crash reports and, for App Store apps, performance metrics, so check it after each release and fix the top crashes first.
Apple lists App Store distribution as a Developer Program benefit, so plan to renew the membership each year for as long as you want the app available.
Questions About Building an iPhone App
How much does it cost to make an iPhone app?
Building and testing on your own devices can cost nothing beyond a Mac you already own: Xcode, Swift Playground and the free Apple Account are free. Publishing costs the Developer Program fee, which Apple lists as US$99 per year. Optional costs include a website for your privacy policy, servers if your app needs them, and any paid tools or help you choose.
Do I need to know how to code?
For a native app built in Xcode, yes, but you can learn as you go with Apple’s free tutorials. Swift Playground is designed to teach coding from zero. App builders reduce or remove coding, at the cost of flexibility.
Can I build an app on an iPad?
Yes, with Swift Playground. Apple says you can build apps there and submit them to App Store Connect, though you still need a Developer Program membership to publish.
Why does my app stop opening on my iPhone after a week?
With a free Personal Team, Apple’s provisioning profiles expire seven days after they are issued. Connect the phone and run the app from Xcode again to reinstall it, or join the Developer Program to get longer-lasting profiles.
Can my app make money on the App Store?
Yes. Apple’s options include a paid upfront price, free with in-app purchases or subscriptions, and free. Pick one early, because adding purchases later can mean reworking screens and resubmitting for review.
Your next step is simple: install Xcode, create the App project from the steps above, and get the starting screen running on the Simulator today. Everything else builds on that first run.

Matthew Burleigh is the founder, head writer, and editor of Solve Your Tech, which he launched in 2012. He has written technology tutorials since 2008 and worked in IT since 2003, including small-business support, IT management, and consulting. He holds Bachelor’s and Master’s degrees in Computer Science from Arizona State University.
Matthew writes practical guides for Windows, iPhone and iPad, Microsoft Office, Outlook, Google apps, and Android. Solve Your Tech’s guides are checked step by step against the device or app maker’s own documentation and tested on his own devices whenever he has the hardware or software, with clear steps, sources, and update dates.
Read more about Matthew and how Solve Your Tech writes and updates its guides, or report a correction.