Ship the Template

My machine is littered with new app and projects which never shipped publicly. Sure, many of those didn’t ship for a sensible reasons but a big part of their failure came down to the simple fact that the first version is the hardest. We’re always trying to work out the MVP or MMF and this complexity somehow seeps into our delivery pipeline, smothering it before it sees the light of day.

For this reason I decided to try setting up the delivery process before adding any features. ie, literally attempt to ship the Xcode template. I’ve only done this once but it was surprisingly hard, just getting past the first step was nearly impossible!

Anyway, good luck and I hope this inspires you over the finish line more often.

  1. Generate a project name using a tool like the essential guide to choosing good project names.
  2. Register a new identifier on Apple’s Certificates, Identifiers & Profiles1
  3. Create a new app on App Store Connect2
  4. Add internal testing group to the TestFlight section of the new app on App Store Connect
  5. Create a new project in Xcode with the new identifier3
  6. Push the project to GitHub4 or similar
  7. Create an Xcode Cloud workflow5 to Archive with a post action of TestFlight Internal Testing6 (remember to go to Environment and select “Clean”)
  8. Start your Xcode Cloud build and ensure the build was successful and that you now have a build in the TestFlight section of the new app on App Store Connect.
  9. In the iOS App 1.0 section of the new app on App Store Connect via Upload your build.
  10. Select “Add for Review” …

You WILL get errors, and there’s NO way it will pass App Review. However, you now have:

  1. An app in App Store Connect, that is under version control
  2. A build pipeline that can automatically build and deploy your app to App Store Connect.
  3. A process by which you can fix that appeared when you tried to publish the empty app.