About the client:
The client provides transportation services all over the world. The client provides a reservation platform for many transportation companies.
Challenges:
The client’s requirement was to build a CI/CD pipeline for iOS application deployment that could:
- Build the app for multiple environments (Dev, QA, Prod) on schedule and on triggers.
- Automate iOS application deployment to the App Store.
- Sign production code securely and consistently.
- Generate and submit screenshots automatically with each release.
- The existing manual process was time-consuming, error-prone, and impacted release velocity.
Our Solution:
The client appointed LogiQuad to automate their existing application development process for iOS and improve productivity.
We conducted a review with their development team to understand the current process and proposed a solution that improves the overall performance of the development process.
We proposed a CI/CD Pipeline for iOS Application Deployment using Jenkins CI/CD for iOS and the Fastlane automation tool.
Jenkins provides a seamless way to set up a CI/CD environment for almost any combination of code languages and source code repositories using pipelines, enabling full iOS application deployment automation.
Fastlane, a Ruby-written CI/CD tool for releasing mobile apps (iOS/Android), eliminates tedious release tasks and automates code signing, building, and submission to App Store Connect.
Architecture :
Jenkins is responsible for managing the whole pipeline. It fetches the code from the repository, executes the predefined task on schedule or on the trigger.
The proposed pipeline configured for three environments –
- Dev – Bitbucket Webhooks to trigger the build on a dev environment. Jenkins is configured to check (using poll) for the changes in the repository before build.
- QA – Jenkins is preconfigured to build the QA release on the predefined frequency biweekly/weekly etc.
- Prod – Fastlane will be used to manually trigger the release of application app store using app store connect
For production environment, we configured Fastlane to sign the code with a certificate, build and export the app to App Store Connect. This also includes submitting the auto-generated screenshot.
We used AWS CloudWatch and SES to log the event and send the notification to the team about the releases, build completion and deployment.
Business Benefits:
Our solution has successfully built continuous deployment of the iOS application. The client can now :
- Run their tests continuously.
- Collaborate with teams in a better way.
- Can automate the release avoiding the possible mistakes in manual deployment.
- Can automatically sign the code for app store release.
Moving to Continuo us Deployment has changed the client’s development dramatically. The productive has increased significantly and lead to a more stable and better product. Steps like automated testing are helping them to build a better product for their users.