Stay up to date with the latest iOS CI/CD news

Every two weeks, directly to your inbox and packed with everything you need to know and be aware of so that you're always prepared for the next app release!

Read and trusted by engineers from:

Issue 21

Sponsored

Put your mobile releases on autopilot.

No more cat-herding, spreadsheets, or steady drip of manual busywork. Runway helps your team level up your release coordination and automation, from kickoff to release to rollout.

Hey everyone! 👋 Welcome to the twenty-first issue of the iOS CI Newsletter. Hope you’ve had a great couple of weeks!

By the time this issue goes out, I will officially be on holiday in Spain visiting family. I will be here for about a week recharging my batteries and getting ready for a busy second half of the year.

I have three very exciting talks coming up in the UK in September, October and December that I am looking forward to and a bunch of new projects I can’t wait to share with you 😬.

If you’re going to be around the UK and want to catch up, you can see the list of events I will be speaking at on my website.

📦 Committing SPM dependencies to source control

I thoroughly enjoyed reading this article from Geor Kasapidi on how to commit Swift Package Manager dependencies to source control. This is a problem we tried to solve at the BBC when we started using SPM alongside CocoaPods and, similarly to what we already did with pods, we wanted to ensure reproducible builds and mitigate any security risks on CI.

I wrote an article on the solution we came up with at the time but we will revisit our approach with what Geor has shared! 🎉

💨 Tuist + CodeMagic: Optimising iOS app builds

If you’re using Tuist and CodeMagic to build your iOS apps, you should check out this article by Himesh Panchal on how to reduce your build times by making use of CI caching 🎉.

🔨 Bitrise 🤝 Xcode 15

Bitrise have recently urged all users not on private or dedicated plans to start testing their builds for Xcode 15 on the Edge stacks to ensure no disruption occurs in September when Xcode 15 is released.

If you are a Bitrise user, make sure you check out this article and start testing your builds on the Edge stacks!

🧰 How to create a binary framework from a Swift Package

I wish this article by the awesome Marco Eidinger had been around when I first tried to precompile a Swift Package into a binary, it would have saved me a lot of time and headaches!

Precompiling Swift Packages into binaries is a great way to speed up your CI builds as you can avoid having to build the package from source every time but it can truly be a pain to set up. This article guides you through everything you need to know and points you to some very useful resources and open-source projects.

🔐 How to pass environment variables to Xcode from the CI

In this article, Alexey Alter-Pesotskiy shares how you can remove secrets from your code by using .xcconfig files, CI secrets and environment variables.

I also use .xcconfig files to remove secrets from code and repositories both for personal and work projects but you must know this approach is not completely secure. As Matt (NSHipster) explains in this amazing article about secrets, the only way to truly keep secrets safe is to not have them in the client in the first place.

📉 How Qonto dramatically improved their test build times

In this article, Ruslan Alikhamov shares how the team at Qonto managed to reduce the test build and run times on CI/CD by around 37% 🤯.

Ruslan Alikhamov does a brilliant job at explaining the problem they were facing, the different approaches they took to solve it, and the results they achieved. I am going to be taking some of the learnings from this article and applying them to my projects ❤️.