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 51

Sponsored

Releases so easy your work will never pile up

Runway handles the release coordination and busywork so you can focus on building great apps. You do the building, we'll do the shipping.

This week’s issue of the iOS CI Newsletter covers the following topics:

  • Detecting memory leaks.
  • Installing iOS simulator runtimes on CI/CD
  • Categorising tests using attributes.
  • Styling the output of Swift executables.

Thanks so much again for subscribing, enjoy the issue!

👨‍🔧 Detecting a memory leak in Xcode

At my previous job, I led an initiative to audit the app I worked on to find all memory leaks and fix them. While the diagnosis is simple in most cases, debugging the root cause of a memory leak can be a very complex task that can sometimes take multiple days.

In this article in the Emerge Tools blog, Jacob Bartlett outlines the process he followed to fix a memory leak recently and shows a bunch of tips and tricks you can use in your own apps!

🔨 Xcode 16 support and major stack updates on Bitrise runners

Bitrise has recently announced that a new Xcode 16 stack is available on their infrastructure. Along with this new stack come numerous improvements, defaults and updates to the technologies within the stack.

Before you update your pipelines, you must know that this stack contains breaking changes and your pipelines will most likely not work out of the box when you migrate.

🎨 Styling terminal output in Swift executables

I was so happy to see this article from Natan Rolnik on swifttoolkit.dev about styling terminal output in Swift executables. It is a topic that really interests me and that I have spoken about in the past and seeing more articles about this in the community makes me super happy!

If you’d like to build delightful Swift CLIs and style the terminal output to provide the best customer experience possible, make sure you check out Natan’s article!

🧪 Using Traits to annotate and customize test behaviour

Traits are a feature in Swift Testing that allows you to categorise and customise your unit tests. If you’d like to learn all about this feature, make sure you check out Antoine van der Lee’s wonderful article on the topic!

If you use Xcode Cloud as your CI/CD service, traits such as tags have a repercussion on how your test reports display on the dashboard. Make sure you use tags to your advantage to better organise your tests and save time going forward when you inspect failing CI/CD runs!

📱 Install older simulator runtimes on CI/CD

Using a CI/CD service’s infrastructure is a good solution to not have to maintain your own runner infrastructure but it comes with its limitations. For example, you don’t have full control over the software installed in the runners and are limited to what the service installs on the machines.

There are usually ways to work around these limitations by installing the software you need as part of the workflow’s execution. In this article, Alexey Alter-Pesotskiy shows you how you can install simulator runtimes as part of a workflow’s execution in several different ways.