Shipping an iOS App Is Mostly Configuration
After spending months writing an app, I expected the final step — putting it on the App Store — to feel like a programming task.
It mostly did not.
The application can work perfectly on my phone and still be nowhere near ready for submission. There are bundle identifiers, version numbers, build numbers, signing, App Store Connect metadata, screenshots, privacy information, subscription products and review notes.
None of these things are particularly difficult on their own, but there are enough of them that the release process starts feeling like a second project surrounding the actual app.
One distinction that initially caused me confusion was version versus build number. The version is what users see, such as 1.0.0. The build number identifies a particular uploaded build of that version and has to increase when I upload another one.
Then there is the App Store listing itself. The application binary does not contain the complete store page. Descriptions, screenshots, categories, age ratings and other metadata are managed separately in App Store Connect.
The same is true for subscriptions. Creating a paywall in the app does not automatically create the corresponding products for Apple. Those products also need their own configuration and review setup.
The good news is that after doing it once, most of this stops feeling mysterious. There is simply a release checklist around the code.
That has changed the way I think about “finishing” an application. The feature-complete build is not the finished product. Distribution, configuration and everything the store needs are part of the product too.
Topics
