Continuous Integration and Delivery for iOS
Article Summary
Jimmy Harijanto from Blibli.com shows how to stop manually building iOS releases in Xcode. His team automated the entire pipeline from code commit to TestFlight using open-source tools.
This practical guide walks through implementing CI/CD for iOS apps using Jenkins, Fastlane, and Bitbucket. Harijanto shares the exact architecture and code his team uses at Blibli.com to automate builds, manage version increments, and distribute apps without touching Xcode.
Key Takeaways
- Three build options: auto-increment version, upload to TestFlight, or push to artifactory
- Fastlane handles version bumping and git commits automatically during builds
- Multibranch pipeline shows build status directly in Bitbucket pull requests
- Manual triggers let anyone deploy to TestFlight without opening Xcode
The setup eliminates manual iOS builds by automating everything from version increments to TestFlight uploads through Jenkins and Fastlane.
About This Article
Jimmy Harijanto's team at Blibli.com was manually managing build numbers and version changes for their iOS releases. They needed a way to prevent deployment failures caused by uncommitted git changes or missed version updates.
They set up a Fastlane lane that runs clean_build_artifacts, increment_build_number, and ensure_git_status_clean before each build. This automatically checks the repository state and updates the version without requiring manual steps.
Their Jenkins pipeline now has three configurable parameters: INCREMENT_BUILD_NO, UPLOAD_IPA, and UPLOAD_TO_ARTIFACTORY. Team members can trigger builds from the 'Build with Parameters' page instead of manually exporting from Xcode.