Before the App Store, distributing software was much harder than it is today. There was a time when developers had to put copies of their apps on floppy disks or CDs and literally “ship” them to the stores.
The App Store introduced the next chapter in software distribution. Developers didn’t need to worry about hosting, collecting payment or fulfilling orders anymore. Apple ensures that all App Store visitors have a valid payment method on file, eliminating most of the friction from buying apps. Developers can now focus on building great apps and leave the rest to Apple and the App Store.
This book isn’t meant to be an all-encompassing App Store distribution manual. It also isn’t a replacement for Apple’s official documentation. Apple changes its platform every year and many of these changes affect app distribution. The App Store Review Guidelines, the set of rules governing what third-party developers can and can’t do, is also a living document that changes frequently.
The purpose of this book is to cover the fundamentals thoroughly so you can build the mental models you need to internalize the hardest parts of App Store distribution. These mental models will help you for years to come.
The book also covers best practices and automation. There is no definitive list of app distribution best practices, but over the last decade, teams have converged on similar practices that you’ll read about in this book.
How to read this book
If you’ve never published an app to the App Store, it may seem like there is an endless list of things you need to do before users can download your app. In this case, you want to start with Chapter 1, “The App Store” and work your way through the first three chapters to learn about the basic concepts related to the App Store and the process of uploading your first app to the App Store.
If you have some experience with App Store release and want to gain more in-depth knowledge about the release process, Chapter 4, “Code Signing & Provisioning” through Chapter 8, “App Approved! (Now What?)” walk you through different phases of app distribution, using the Xcode environment and performing the related tasks via Apple Developer Portal.
Taking things one step further, Chapter 9, “Build Customizations” through Chapter 11, “Managing Secrets” teach you the intricacy of the Xcode build system, such as targets, schemes and build settings, and how you can configure them to create the ideal release pipeline.
The remainder of the book takes you out of Xcode and walks you through the automation process, starting with
xcodebuild on the command line and, later, using fastlane on a continuous integration server.
Feel free to skip around between chapters. Wherever you need prior knowledge, you’ll find cross references to related chapters to help.