Skip to main content
This section is optional

Everything from here requires an Apple Developer Account ($99/year). If you're not ready to invest in that, you can skip Part 5 entirely — your app runs great in the Simulator and that's a complete achievement on its own. Come back to this section whenever you're ready.

Chapter 14: Apple Developer Account

Apple's developer tooling is confusing. This chapter explains it in plain English.

To ship an app to TestFlight (and eventually the App Store), you need an Apple Developer Program membership. This chapter walks through enrollment and explains the concepts — certificates, provisioning profiles, App IDs — that trip up every new developer.


What You'll Learn

  • Enrolling in the Apple Developer Program ($99/year)
  • Certificates: Development vs Distribution
  • Provisioning profiles — what they are and why they exist
  • App IDs and Bundle IDs
  • Automatic signing vs manual signing
  • All of this explained without jargon

Step 1: Enroll in the Apple Developer Program

What it costs

The Apple Developer Program costs $99/year. This gives you:

  • TestFlight access (beta testing with up to 10,000 users)
  • App Store distribution
  • Advanced app services (push notifications, Sign in with Apple, etc.)
  • Access to beta OS releases

How to enroll

  1. Go to developer.apple.com/programs
  2. Click Enroll
  3. Sign in with your Apple ID (use the same one you use for Xcode)
  4. Choose Individual enrollment (not Organization — that requires a D-U-N-S number)
  5. Fill in your legal name and address
  6. Pay the $99 fee
  7. Wait for Apple to process your enrollment (usually 24-48 hours)
Enrollment Processing Time

Apple reviews enrollments manually. Most are approved within 48 hours, but it can take up to a week. Start this process before you need it — don't wait until you're ready to upload.

Can I use a free account?

A free Apple Developer account lets you:

  • Run apps on your own device via Xcode
  • Use the Simulator
  • Build and test locally

But you cannot:

  • Upload to TestFlight
  • Submit to the App Store
  • Use push notifications
  • Use certain entitlements (Sign in with Apple, iCloud, etc.)

For this tutorial, you need the paid account to reach TestFlight.


Step 2: Understand Certificates (in Plain English)

What is a certificate?

A certificate is Apple's way of saying: "We verified that this person is a real developer." It's a digital identity card.

Think of it like a passport:

  • Your Development certificate lets you build and test on your own devices
  • Your Distribution certificate lets you submit apps to the App Store and TestFlight

How certificates work

You create a certificate request on your Mac

Apple signs it (verifying your identity)

The signed certificate is installed in your Keychain

Xcode uses it to sign your app

iOS checks the signature before allowing the app to run

Do I need to create certificates manually?

No. Xcode's Automatic Signing handles certificate creation for you. When you enable automatic signing (which we did in Chapter 10), Xcode:

  1. Generates a certificate signing request
  2. Sends it to Apple
  3. Downloads the signed certificate
  4. Installs it in your Keychain
  5. Uses it automatically when building

You don't need to touch the Keychain or the developer portal for certificates.


Step 3: Understand Provisioning Profiles (in Plain English)

What is a provisioning profile?

A provisioning profile is a file that answers three questions:

  1. Who is allowed to build this app? (certificate)
  2. What app is this? (App ID)
  3. Where can it run? (device list or "any device" for App Store)
Provisioning Profile = Certificate + App ID + Device List

Types of profiles

Profile TypeUsed ForDevices
DevelopmentTesting on your own devicesSpecific devices you register
Ad HocTesting on a limited set of devicesUp to 100 registered devices
App StoreTestFlight + App StoreAny device (Apple handles distribution)

Do I need to create profiles manually?

No. Automatic Signing in Xcode creates and manages profiles for you. This is another thing you don't need to touch.


Step 4: Understand App IDs and Bundle IDs

Bundle ID

Your Bundle ID is the unique identifier for your app. We set this in Chapter 10:

com.yourname.gratitudetree

This must be globally unique across all apps on the App Store. The convention is reverse domain notation: com.yourcompany.appname.

App ID

An App ID is registered in the Apple Developer Portal and links your Bundle ID to your developer account. It's what Apple uses to track your app.

Automatic Signing creates the App ID for you the first time you build with a matching Bundle ID. No manual steps needed.

The relationship

Apple Developer Account
└── App ID (com.yourname.gratitudetree)
└── Provisioning Profile
└── Certificate
└── Your signed .ipa file

Step 5: Verify Automatic Signing

Let's make sure everything is configured correctly in Xcode:

  1. Open your project: npx cap open ios
  2. Select the App target in the left sidebar
  3. Go to the Signing & Capabilities tab
  4. Ensure Automatically manage signing is checked
  5. Select your Team from the dropdown (your Apple Developer account)
  6. The Bundle Identifier should be com.yourname.gratitudetree

If you see a green checkmark next to "Signing Certificate" and "Provisioning Profile" — you're good. Xcode has created everything automatically.

>_Claude Code
Try asking:
> I'm setting up my Apple Developer account for the first time and I see a lot of unfamiliar terms in Xcode — certificates, provisioning profiles, entitlements, capabilities. Can you explain what I actually need to worry about vs. what Xcode handles automatically?
Tip: Claude Code is great at demystifying Apple's developer tooling. If you see an unfamiliar term in Xcode, just ask.
$ claude "I'm setting up my Apple Developer account for the first time and I see a lot of ..."

Step 6: Common Gotchas

"Your account already has a valid iOS Distribution certificate"

This means you (or another app) already has a distribution certificate. Xcode handles this automatically — it reuses the existing one. No action needed.

"No profiles for 'com.yourname.gratitudetree' were found"

This usually means:

  • Your Bundle ID in Xcode doesn't match what's registered
  • Your team isn't selected
  • Automatic signing is disabled

Fix: Check that Automatically manage signing is enabled and your Team is selected.

"The app ID cannot be registered to your development team"

Someone else has already registered this exact Bundle ID. Choose a different one:

  • com.yourname.gratitudetree2
  • com.youractualname.gratitudetree
  • io.github.yourusername.gratitudetree

⚠️Common Issues

Checkpoint

Checkpoint — End of Chapter 14

Your app should now:

  • You have an active Apple Developer Program membership ($99/year)
  • You understand what certificates, provisioning profiles, and App IDs are
  • Automatic signing is enabled in Xcode with your team selected
  • Xcode shows green checkmarks for signing certificate and provisioning profile
  • Your Bundle ID is unique and matches capacitor.config.ts

What's Next

Your developer account is set up and signing is configured. In the next chapter, we'll build, archive, and upload the app to TestFlight — then invite testers to try it on their iPhones.

𝕏

Follow @parvsondhi for build threads, tips, and updates on this tutorial.

Next: Chapter 15 — TestFlight →