The App Store review process can be cumbersome. iOS apps take an average of 2 days to be reviewed, while the Mac App Store can take up to 6 days. If the reviews surface issues with your app, or there are other changes you need to make after being reviewed, getting your app to users will take even longer.
In addition, App Store ratings and reviews are critical for getting your app listed in the Apple search results and getting users to download your app. To ensure you get the best reviews possible and avoid low star ratings, it’s important to catch issues and fix bugs quickly. And, with updates to iOS, it becomes even more important to continually test your application against the latest operating system updates. As of March 2018, there have been three iOS releases in 2018 alone, 11.2.2, 11.2.5, 11.2.6.
Do you have trusted tools in your toolkit to ensure code quality and stable releases? This is where continuous integration can help.
What is continuous integration?
Continuous integration is a software development strategy to help teams consistently integrate new code often (at least daily, or even several times a day), and test that code before merging the code with master. Developers write smaller increments of code and automatically build and test the code using a continuous integration server. The continuous integration server can be hosted by the development team, or the team can use a hosted solution, such as CircleCI.
It’s important to realize that a continuous integration tool is only one small part in being “continuous.” Using CI as part of your development strategy is a mindset and a culture. Every element of your build and test process needs to be aligned in order to take advantage of the benefits of continuous integration.
Benefits of continuous integration for iOS apps
The fundamental benefit of continuous integration is that it helps you get your software product to the end user faster. This allows the end user to get the benefits of your product faster, and you get a return on investment faster. In addition, you get faster feedback on your product, allowing you to iterate and improve your products, getting you to market fit ahead of your competitors.
How does this work?
When developers integrate smaller bits of code more often, it’s easier to find issues and fix them. This reduces the amount of time spent hunting for the root cause of a bug, and developers can get back to working on new code that’s delivering value.
Imagine if your developer spent six weeks coding a new module. At the end of the six weeks, they merge and test the work, and the compile returns pages of error. What is the cause of the error? Is the code simply missing a variable? Or is there a sneaky bug that is hiding behind the thousands of lines of code? Does your developer even remember why they coded an element a certain way?
What could have been a few minutes of work to debug now becomes hours. Sound painful? We think so, too.
The CircleCI continuous integration advantage for iOS
Practicing continuous integration with a tool like CircleCI helps teams avoid the pain of the “monster merge.” And, CircleCI enables teams to automate their build pipelines for their iOS applications (as well as macOS, tvOS, and watchOS applications).
CircleCI gives you control and flexibility with workflows and popular pre-installed dependencies such as Fastlane, Homebrew, Node.js, and CocoaPods. Configure iOS jobs to match your app development cycle using workflows.
You can run your iOS jobs on the same config as your Linux and/or Android projects to get faster feedback and ensure consistency across all projects, which is especially relevant for React Native users. We enable you to use one tool to monitor issues across all your repositories.
And our support for multiple Xcode versions allows for upgrading to the latest build image, ensuring iOS jobs run on the version your application needs, with up-to-date dependencies.
How to get started with continuous integration for iOS
Getting started with CircleCI for your iOS development is easy.
- Sign up for free and start a 2-week trial
- Connect CircleCI to your version control system (such as GitHub or Bitbucket)
- Configure your builds (via .circle/config.yml). The .circle/config.yml file is stored with your source code.
- Start building.
Once you get going with CircleCI, you can power up your builds to run faster using our workflows to parallelize your builds. Once you get started, you’ll find more powerful features at your disposal such as fast caching, as well as Docker and iOS in one config file.