Getting Started With Continuous Delivery With fastlane for iOS

iOS developers have been fortunate enough to enjoy and work with the robust development platform that Apple has provided, primarily Xcode. This has helped inspire the engaging and powerful apps that consumers enjoy on the App Store today. Xcode provides an intuitive IDE and that, coupled with the emergence of Swift as a truly modern programming language, has made programming on the platform sheer enjoyment.

However, while the development aspect of the workflow is cohesive, the workflow breaks down when it comes to the chores involved in dealing with code signing and distributing apps. This has been a long-standing problem for the platform, and while it has improved incrementally, it is still a bottleneck for almost all developers. This has in many respects stifled continuous delivery of apps—that is to say, the need for manual building and distribution of apps daily internally and externally is error-prone and laborious. 

That’s where fastlane comes in. The fastlane suite of tools makes distributing apps much easier, allowing developers to focus on their apps and let the tooling take on tasks like managing provisioning profiles and certificates and building, packaging and distributing apps. One of fastlane’s toolchains is a client-side automated Continuous Delivery turnkey solution that iOS developers can leverage to ensure their apps get tested and validated continuously by others, with minimal human intervention. 

Developed by Felix Krause (@krausefx), fastlane consists of an open-source suite of tools that unifies the automation of building and deploying iOS apps via the command line, as well as integrating with various third-party libraries in addition to Apple’s own APIs. As somewhat of a cult toolchain amongst iOS developers, and backed by Google, fastlane will save you lots of time by automating a lot of your manual daily and weekly tasks.

In this tutorial, we are going to explore two very popular features of fastlane: code signing and packaging/distributing apps. 

Read the rest of my tutorial exclusively on TutsPlus.

The Book ‘Continuous Delivery for Mobile with fastlane’ is out

The book that i’ve worked on for the past 6 months is finally out. CONTINUOUS DELIVERY FOR MOBILE WITH FASTLANE by Pact is available on either Amazon or Packt

About the Book

Competitive mobile apps depend strongly on the development team’s ability to deliver successful releases, consistently and often. Although continuous integration took a more mainstream priority among the development industry, companies are starting to realize the importance of continuity beyond integration and testing.

What You Will Learn

  • Harness the fastlane tools for the Continuous Deployment strategy
  • Integrate Continuous Deployment with existing Continuous Integration.
  • Automate upload of screenshots across all device screen-sizes
  • Manage push notifications, provisioning profiles, and code-signing certificates
  • Orchestrate automated build and deployments of new versions of your app
  • Regulate your TestFlight users and on-board new testers

This book starts off with a brief introduction to fastlane—a robust command-line tool that enables iOS and Android developers to automate their releasing workflow.

The book then explores and guides you through all of its features and utilities; it provides the reader a comprehensive understanding of the tool and how to implement them. Themes include setting up and managing your certificates and provisioning and push notification profiles; automating the creation of apps and managing the app metadata on iTunes Connect and the Apple Developer Portal; and building, distributing and publishing your apps to the App Store.

You will also learn how to automate the generation of localized screenshots and mesh your continuous delivery workflow into a continuous integration workflow for a more robust setup. By the end of the book, you will gain substantial knowledge on delivering bug free, developer-independent, and stable application release cycle.