Getting an iOS App on the App Store
Let’s say you’ve got a great idea for an app (if you’re reading this, there’s a good chance you do). Apple’s App Store is the best way to distribute that app to users of iPhones, iPads and other Apple products. This article will cover how to get your app on the store.
If you’re starting out, I do recommend hiring a person or company with the right experience, such as SharkMonkey Apps, to build the app and guide you through the development and distribution process. If you’re doing it yourself, first you’re going to have to build the app. Software development for Apple platforms using Swift and Xcode, or cross-platform solutions like React Native or Flutter is too broad of a topic to cover in this article. For now, we’ll assume you have a working app built using appropriate tools.
Apple Developer Program
To distribute an app on the App Store, you will need to belong to the Apple Developer Program. The program costs $99/year. You can sign up as an individual, or as an organization such as an LLC. Signing up as an organization allows access to greater collaboration tools and is recommended for any legal entity. To sign up as an organization, you will need a DUNS number which is an id number you can get from Dun and Bradstreet. Once you have the DUNS number, Apple will have some additional verification steps including a brief phone call.
Once you have a developer account, you will have access to all of Apple’s distribution tools. If you have an organization account, you can add additional users or admins. This is a great way to control your own account, while having people with more technical experience handle the details.
Certificates, IDs & Profiles
Certificates, identifiers, and profiles are used by Apple to identify and ensure the integrity of your app. They used to be more difficult to manage, but now Apple allows them to be automatically managed, which makes things much easier.
To begin the app process, you will need an identifier for you app. From the Apple Developer site, navigate to identifiers. From there, click the plus button to create a new identifier, leave App IDs checked and press continue. Select App, and press continue.
From here you can give your app a description, and a bundle ID. Bundle id must be unique, and generally follows reverse-domain name format, so com.domainname.appname. If you already have a bundle identifier for your app in Xcode you can use that if you like. Below that, select any capabilities you want to have for your app. You can change these later, but go ahead and select any you need right away. Click continue, and finally register.
App Store Connect
Next, go to App Store Connect. This is where you will manage your App Store listing. If you want to add any team members, you can do so under users and access and select their roles and privileges. The other tabs will have information after you’ve submitted to the app store.
On the Apps tab, press the plus button and select new app. Give your app a name that will appear on the App Store, and a primary language. For bundle id, select the bundle id you just created from the drop down. The SKU is used to identify the app on the sales side, but it can be the same as the bundle id. You can also select the level of user access and create.
On the main app screen, you can enter any marketing information you wish, or leave that until later. You will eventually need screenshots for display on the App Store in the correct resolutions, as well as all required information filled out prior to submitting for review which we will cover later. First we will look at TestFlight, but to do that, we will need to connect Xcode to our Apple Developer Account, and our app to the identifier we created.
From Xcode to TestFlight
Xcode is Apple’s integrated development environment(IDE) for developing software for Apple platforms. If you’re creating a new Xcode project, you can set the bundle identifier to be the one you created. In Xcode, add your Apple Developer account as an account under settings by pressing command + , pressing the plus button, and entering your apple id and password.
Under the navigator pane on the left of the screen in Xcode, select the project at the very top. This opens project settings in the editor. Select the primary target for your app. Under general verify or update the bundle identifier. Under signing & capabilities, select your team from the drop down, verify the bundle id, and confirm that automatically manage signing is checked.
If you haven’t already done so, now would be a good time to build your app.
TestFlight is Apple’s tool for beta testing and comes with App Store Connect. Before sending your app to TestFlight, it will need an icon with a resolution of 1024 x 1024. Once you have the image file, in Xcode, under assets, drag it into the space for app icon.
You may want to set up continuous integration(CI) which will automate the process of getting new app builds to TestFlight. This can be done with several third party tools, or Xcode Cloud. For now, we will do a manual archive in Xcode.
First change the Xcode build device to be “any iOS device (arm64)”, then go to product > archive. This will create a build of your app that can run on any iOS device. Once you have a build, go to window > organizer. You will see your build, and can go through the distribution process.
Select your build and press Distribute App. Select App Store Connect, and press Next. Select Upload, and press Next. It will analyze your app, and give you options to upload symbols, which helps for debugging, and to automatically manage the version and build number. Press Next. Leave automatically manage signing, and press next. Xcode will give you an output of some app information. At this point press upload, and the app will be sent to App Store Connect and TestFlight.
If you will be doing this repeatedly, a CI tool will automate this process.
TestFlight
From your app’s App Store Connect page, navigate to the TestFlight tab. After a few minutes, you will see the build you just uploaded. It will take some time to process, but after that, you can distribute it to beta testers.
You can create groups of testers, or select your build and add individual testers. Internal testing is people who you added as users for your App Store Connect account, while external users are not. Adding external users requires the app to go through beta review, which can take up to a couple days.
Once you have added the users they will receive an email with a link to download the TestFlight app, where they can install and test your app.
Getting Ready To Distribute
On the App Store tab with prepare for submission, toward the bottom, you can select Add Build and select a TestFlight build to be distributed on the App Store.
There is a lot of information you will need. You will need to have a website to link in the App Store listing. You will need to have a privacy policy, and complete the App Privacy section. It is a good idea to go through every section on the left panel and add any appropriate information.
When you think you are done, go back to prepare for submission, and press Add for Review. If you missed anything, Apple will let you know. Once you have everything, it will allow you to submit for review.
App Store Review
Apple wants to make sure that apps on its App Store meet its guidelines for safety and quality. They don’t reveal all the details of their process, but it can take anywhere from a few hours to a few days. Apps that follow its guidelines are generally approved.
After some time you will hopefully receive a notice that the app has been approved. If you elected to manually release the version (default option), then you must go back to App Store Connect and press Release This Version. It takes a little more time from for the app to appear on the store, but when it does…
Congratulations, you are now the proud owner of a new app.