Finding best CI/CD for iOS Development

Comparison of Jenkins, CircleCI and Bitrise for an iOS Project CI Solution

What is Continuous Integration (CI)

There are different types of releases a software developers must do when new features are being developed or bugs are fixed. Each release is mostly the same software with a difference of release frequency and/or target audience.

  • company-wide internal release (~every week)
  • public beta release (~once every two weeks)
  • production release (~once a month)
  • update third party libraries
  • increase build and version number
  • run unit tests (possibly on different screen sizes)
  • run UI tests (on different devices)
  • compile app
  • publish to target audience

Mission to find a suitable solution for iOS development

So recently I got a task from a client to find the best CI solution for iOS app development project. We had just published the first version of the app and now needed to automate aforementioned build/release steps. To get things interesting I had an ideal solution in my head. An ideal CI solution wouldn’t interfere with our project settings, its folder structure nor with work of other developers working on the project.

Jenkins

Logo of Jenkins
Jenkins server user interface

1. Complicated pipelines

First, the various plugins that I had to install to do this were complex. This meant, when someone other than me, would later need to change something, it would need a lot of time to dig through the setup.
Also installed plugins often executed commands that might not be necessary every time.

2. iOS needs Xcode to compile

Second, iOS apps need a mac machine running Xcode to compile a build. Clients Jenkins server was not a MacOS machine.

CircleCI

Circle CI logo
Circle CI User Interface

Bitrise

Bitrise logo
Bitrise User Interface

Conclusion

While Jenkins is nice and configurable, open source and free, it really is not an “out of the box” solution for iOS Development.

Freelance Tech Lead and iOS developer from Tallinn, Estonia. Tech guy by day. Musician and an artist by night. Sometimes vice versa. https://teemusk.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store