A Practical Guide to iOS DevOps (Unfinished)
A Practical Guide to iOS DevOps (Unfinished)
Continuous Integration & Delivery of Swift iOS apps through Build, Test and Deployment Automation.
About the Book
P.S: THIS BOOK PUBLISHED as HALF FINISHED, without reviewed as author joins Apple. Some chapters are outdated. The author is no longer maintaining the book.
For a while now, IT industries are hearing buzzwords like continuous delivery and DevOps to speed up the delivery of the new features. Continuous Delivery and DevOps practices proved to be worked well for web applications. However, mobile application developments have unique challenges and require different skill to enable those practices. The traditional DevOps practices don't help or scale a lot in mobile application development. This initiates need for Mobile DevOps. The DevOps and Continuous Delivery applied to the mobile platform like iOS, Android and other mobile platforms.
This book is aimed to solve the above-mentioned challenges of iOS development by applying practical Mobile DevOps and Continuous Delivery techniques. It will also help your iOS team to automate the entire release process of iOS apps including analysing, building, testing, achieving and distribution to App Store through Continuous Integration. You will also learn about dealing with complex iOS development tasks like Apple development certificates, provisioning profiles, code signing and distribution to App Store Connect. This book aims to be practical, as there will be code snippets, GitHub repositories, images all over the book to demonstrate things in reality.
What This Book Covers
The target audience for this book is iOS Developers all around the world. They might be having different skill sets so not everyone will want to read this book end to end but it would be good to go sequentially and skip chapters that you already know about. Once the basics are covered then you can attack different part needed for your current context.
This book is divided into six main parts.
Part 1 – Basics of Continuous Delivery and Mobile DevOps
This part describes how practices like Mobile DevOps and Continuous Delivery help to ease the pain of iOS releases. This will cover basics general concepts of DevOps and Continuous delivery applied to iOS
Chapter 1, “Basics of DevOps and CI/CD” outlines general concepts of DevOps and Continuous Delivery that are currently being used in the IT industry for deploying applications. This chapter also covers the benefits of adopting DevOps and Continuous Delivery practices.
Chapter 2, “iOS Development Challenges” starts with some common challenges that we see in the iOS development teams.
Chapter 3, “ iOS: Mobile DevOps” highlights different between traditional DevOps and Mobile DevOps. This chapter also explains the unique challenges of mobile deployment for iOS apps and why we need DevOps for iOS apps.
Part 2 – iOS Package Managers
This part explains the project structure of iOS apps and basic concepts of iOS development including Xcode project, build sets, targets, schemes etc. The main goal of this chapter is to understand the concept of package managers like CocoaPods, Cartage and Swift package Manager.
Chapter 4, “iOS and Xcode Project” gives a basic overview of an iOS application in Xcode and understanding concepts like targets, schemes, build phases and build settings.
Chapter 5, “CocoaPods”, covers the most popular iOS package manager. This chapter will cover the basics of CocoaPods and using CocoaPods in iOS apps. We will also cover the internals of CocoaPods and how CocoPods affect Xcode project.
Chapter 6, “Carthage”, covers another popular iOS package manager which is Carthage. This chapter will cover the basics of Cartage and using Carthage in iOS apps. We will also cover steps involved in the setting up Carthage for iOS app with example app.
Chapter 7, “Swift Package Manager” gives an overview of Swift Package manager with detailed examples. Currently, Swift Package Manager doesn’t officially support iOS but it will be in the future.
Chapter 8 “Selecting the right Package Manager” covers the tips to select the right package manager for iOS app. We will explore what are the pros and cons of each package manager and evaluate the criteria for selecting the right package manager.
Part 3: iOS Code Signing
Chapter 9 "iOS Code Signing Basics" covers all the internal aspects of the code signing.
Chapter 10 "Certificates and Provisioning Profiles" covers the details of the code signing certificate and provisioning profiles.
Chapter 11 "Code Signing iOS apps" covers how Xcode code sign iOS apps. This chapter will also include code signing iOS apps from the command line.
Part 4 – iOS Deployment Pipeline Automation
This part of the book is one of the biggest as it covers automation of the entire iOS deployment pipeline. Starting from command line Apple developer tools, we will cover how to automate each iOS development task in details e.g building, testing, archiving of iOS app.
Chapter 12, “Command Line Apple Developer Tools” introduces useful command line tools provided by Apple for scripting iOS development tasks. We will cover tools like xcodebuild, xcrun, Xcode-select etc
Chapter 13, “Basics of Ruby and Fastlane” covers the basic introduction to Ruby tools for Fastlane setup.
Chapter 14, “Automating iOS Builds” discusses the ways of automating static code analysis, building, testing, deploying using both native tools and Fastlane.
Part 5: iOS Continuous Integration
Chapter 15, ‘iOS Continuous Integration’ gives an overview of the Continuous Integration for iOS which covers both self-hosted and cloud-based CI options. This chapter will also cover some tips to select the right Continuous Integration server and why it’s important for any iOS project.
Chapter 16, “Implementing CI/CD with Xcode Server”, presents Continuous Integration Service from Apple for iOS apps. This chapter shows end to end process of setting up Xcode Server Continuous Integration for any iOS app with detailed architecture.
Chapter 17, “Implementing CI/CD with Cloud-Based CI Services”, demonstrate setting up cloud-based CI server for iOS Continuous Integration and Deployment. This chapter will also cover how the cloud base CI server differs from self-hosted CI servers. We will demonstrate one of the popular iOS cloud-based CI services like TravisCI, CircleCI, BuddyBuild, Bitrise and Nevercode.
Chapter 18, “Continuous Integration for iOS SDK” covers how to add CI for iOS libraries and SDKs. Why adding CI for libraries is equally important as the main app.
Chapter 19, “Managing Self-Hosted CI Servers” discusses the configuration management tools like Ansible that can be used for provisioning and manage iOS CI servers.
Chapter 20, “Managing Release Trains” sets out practices to manage build train in the current version and automate releases on GitHub or similar source control.
Part 6: App Store Connect & App Store Connect API
Chapter 21, “App Store Connect” covers how to make use of TestFlight and AppStore Connects features efficiently for iOS Continuous Delivery. This chapter will discuss multi-build features of TestFlight and Phased releases features of App Store Connects.
Chapter 22 “AppStore Connect API” covers the basics of the AppStore Connect API. This chapter will explore App Store Connect API using JWT token generation process to access API.
Note: This is tentative structure of our book and might change as we go on writing. Please let me know if we miss something to cover in this book, we will happy to cover anything about DevOps, CI/CD or Test Automation in this book.
The Leanpub 60-day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Do Well. Do Good.
Authors have earned$11,817,855writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Top Books
Stratospheric
Tom Hombergs, Björn Wilmsmann, and Philip RiecksFrom Zero to Production with Spring Boot and AWS. All you need to know to get a Spring Boot application into production with AWS. No previous AWS knowledge required.
Go to stratospheric.dev for a tour of the contents.
C++20 - The Complete Guide
Nicolai M. JosuttisAll new language and library features of C++20 (for those who know previous C++ versions).
The book presents all new language and library features of C++20. Learn how this impacts day-to-day programming, to benefit in practice, to combine new features, and to avoid all new traps.
Buy early, pay less, free updates.
Other books:
OpenIntro Statistics
David Diez, Christopher Barr, Mine Cetinkaya-Rundel, and OpenIntroA complete foundation for Statistics, also serving as a foundation for Data Science.
Leanpub revenue supports OpenIntro (US-based nonprofit) so we can provide free desk copies to teachers interested in using OpenIntro Statistics in the classroom and expand the project to support free textbooks in other subjects.
More resources: openintro.org.
node-opcua by example
Etienne RossignonGet the best out of node-opcua through a set of documented examples by the author himself that will allow you to create stunning OPCUA Servers or Clients.
Advanced Web Application Architecture
Matthias NobackThe missing manual for making your web applications future-proof
Jetpack Compose internals
Jorge CastilloJetpack Compose is the future of Android UI. Master how it works internally and become a more efficient developer with it. You'll also find it valuable if you are not an Android dev. This book provides all the details to understand how the Compose compiler & runtime work, and how to create a client library using them.
Ansible for DevOps
Jeff GeerlingAnsible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
R Programming for Data Science
Roger D. PengThis book brings the fundamentals of R programming to you, using the same material developed as part of the industry-leading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
Thinking with Types
Sandy MaguireThis book aims to be the comprehensive manual for type-level programming. It's about getting you from here to there---from a competent Haskell programmer to one who convinces the compiler to do their work for them.
Maîtriser Apache JMeter
Philippe Mouawad, Bruno Demion (Milamber), and Antonio Gomes RodriguesToute la puissance d'Apache JMeter expliquée par ses commiteurs et utilisateurs experts. De l'intégration continue en passant par le Cloud, vous découvrirez comment intégrer JMeter à vos processus "Agile" et Devops.
If you're looking for the newer english version of this book, go to Master JMeter : From load testing to DevOps
Top Bundles
- #1
CCIE Service Provider Ultimate Study Bundle
2 Books
Piotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification... - #3
Software Architecture
2 Books
"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before... - #4
Pattern-Oriented Memory Forensics and Malware Detection
2 Books
This training bundle for security engineers and researchers, malware and memory forensics analysts includes two accelerated training courses for Windows memory dump analysis using WinDbg. It is also useful for technical support and escalation engineers who analyze memory dumps from complex software environments and need to check for possible... - #5
Practical FP in Scala + Functional event-driven architecture
2 Books
Practical FP in Scala (A hands-on approach) & Functional event-driven architecture, aka FEDA, (Powered by Scala 3), together as a bundle! The content of PFP in Scala is a requirement to understand FEDA so why not take advantage of this bundle!? - #10
Cloud Architect: Transform Technology and Organization
2 Books
Architects don't just recite product names and features. They understand the options, decisions, and trade-offs behind them. They earn credibility and maintain authenticity by connecting the penthouse with the engine room. Get two essential books that redefine the role of the software and IT architect at one low price:37 Things One Architect...