The process looks like this:
- Sign into your Apple Developer account
- Create a Bundle ID
- Create a certificate signing request (CSR)
- Create a new certificate
- Create a provisioning profile
- Create an app reservation
- Upload your app package
- Submit for review
Each step is described below.
1. Sign into your Apple Developer account
To submit your app the iOS App Store, sign-in to your Apple Developer Account.
If you don’t have an Apple Developer account, enroll here. Enrollment costs $99 USD/year, though non-profits can have this fee waived.
2. Create your Bundle ID
Once you’re signed in, you’ll need to create a Bundle ID for your app.
💁♀️ What’s a Bundle ID?
A Bundle ID is a string (e.g. com.mywebsite) that uniquely identifies your app in the App Store.
Your Bundle ID will be your website domain in reverse so if your website is mywebsite.com, your Bundle ID will be com.mywebsite.Alternately, you can find your Bundle ID inside your
project.pbxproj
file, next to thePRODUCT_BUNDLE_IDENTIFIER
string.
Go to your Apple Developer account page and choose Certificates, Identifiers & Profiles
to create your Bundle ID.
Then choose Identifiers
and click +
to add a new identifier.
Choose App IDs
, then choose App
as the type. You’ll be prompted for a Description
and Bundle ID
.
Add any Description
you like, then paste in your Bundle ID into the Identifier
text box:
Under Capabilities
, enable the following capabilities:
- Associated Domains
- Push Notifications
Click Continue
and then Register
to finish creating your Bundle ID.
3. Create a Certificate Signing Request (CSR)
On your Mac, launch Keychain Access
app.
From the top menu bar, choose Keychain Access
-> Certificate Assistant
-> Request a Certificate from a Certificate Authority
Add your email address and your name. You may leave CA Email Address
empty. Choose Saved to disk
, then click Continue
:
You’ll be prompted to save the .certSigningRequest
file to disk.
4. Create a certificate
Go to your Apple Developer Account page and choose Certificates, Identifiers & Profiles
-> Certificates
. Click +
to add a new certificate:
Choose Apple Distribution
and click Continue
:
You’ll be prompted to upload a Certificate Signing Request (.certSigningRequest
) file. Choose the file you saved to disk in the previous step, then click Continue
:
On the final certificate screen, choose Download
to save your .cer
certificate file to disk.
To install this .cer
file, open Keychain Access
app and drag the .cer
file onto the list of certificates:
You should see the certificate appear in the list.
5. Create a Provisioning Profile
Go back to your Apple Developer Account page and choose Certificates, Identifiers & Profiles
-> Profiles
. Then click +
to create a new Provisioning Profile:
On the New Provisioning Profile page, choose App Store
, and click Continue
:
On the next screen, choose your desired app ID – the Bundle ID you created in step 2 – then click Continue
:
On the next page, you’ll be asked to choose an existing certificate. Choose the certificate you created in the previous step, then click Continue
:
On the next page, you’ll be asked for Provisioning Profile Name
. Use your Bundle ID
(e.g. com.mywebsite) as the name, then click Generate
:
On the final page, choose Download
to download your .mobileprovision
Provisioning Profile file.
6. Create your app reservation
Go back to developer.apple.com/account and choose App Store Connect
:
Once you’re in App Store Connect, choose My Apps
Your existing apps will be listed. If you want to update an existing app, choose that app. Otherwise, click +
-> New App
:
You’ll be asked for details about your new app. For platform, choose iOS
. For Bundle ID
, choose the Bundle ID you created in the previous step. For SKU
, you can use any string you like. For User Access
, specify Full Access
:
Click Create
to complete your app reservation.
7. Upload your app package
After creating your app reservation in the last step, you’ll be redirected to your app details page where you’ll upload your app package, add screenshots, description of your app, and more.
On this page, fill our the information about your app, such as Version
, Description
, Keywords
, Support URL, screenshots, and other metadata.
When you’re ready to upload your PWA app package, you’ll submit your package by signing into Xcode, assigning your project to your Apple Developer account, then creating an archive.
Each step is described below.
Uploading your package: Sign into Xcode
Go to Xcode
menu -> Preferences
:
In the Preferences dialog, choose Accounts
. If your Apple Developer account isn’t listed, click the +
button to add it to Xcode:
Once you’ve signed into your Apple Developer account in Xcode, dismiss the Preferences dialog.
Uploading your package: Assign your project to your account
In Xcode, choose Project Navigator (📁)
-> [your app name]
-> Build Settings
:
Scroll down to the Signing
section, and set Code Signing Identity
-> Release
to Apple Distribution
:
Then set Code Signing Style
-> Release
to Manual
:
Finally, set Development Team
-> Release
to your Apple Developer account team:
On the same project page, choose Signing & Capabilities
-> Release
:
Under Provisioning Profile
, choose Download Profile...
:
On the download profile prompt, choose the profile you created in the previous steps.
Uploading your package: Create an archive
On the top menu bar of Xcode where you see your iPhone simulator name, choose the simulator name, and select Any iOS Device (arm64)
:
Then from the top menu, choose Product
-> Archive
:
When the archive process finishes, the Archive window will appear:
Choose Distribute App
-> App Store Connect
-> Upload
.
Follow the prompts to complete your upload to the App Store Connect:
Congrats, you’ve uploaded your PWA to App Store Connect. 😎
Submit for Review
Go to appstoreconnect.apple.com/apps and select your app. Scroll down to Build
section and choose Select a build before you submit your app
:
Choose the archive you created in the previous step.
When you’ve finished preparing for submission (pricing, screenshots, localization etc.), choose Submit for Review
to complete your submission:
App reviews typically take 24-48 hours. Once approved, your PWA will be listed in the iOS App Store. 🎉