Fastlane + Jenkins + Crashlytics + Slack – A perfect CI EcoSystem for mobile Apps( iOS React Native )

Our Vision about continuous Integration (CI)  is to have an automated  Ecosystem that can  Build ,DeployTestShare and Notify all the stakeholders with every checkin made on the code repository for mobile Apps. 

A lot of valuable time is wasted in these iOS Application Release Process:-

  •  In preparation of certificates (development certificate) , App ID , Provisioning Profile (AdHoc Appstore)
  • In pulling the latest code from the code repository.
  • In Code Signing the project with the correct provisioning Profile and identifier.
  • In Archiving the build to generate the ipa (iOS).
  • In distributing ipa file with the testers (multiple times).
  • In running smoke/sanity test suite every time to ensure the stability of the build.
  • In notifying all the stake holders (Product and UAT Team) about new release to get their     feedback.
  • and at last In taking the Screenshot and uploading the ipa file to appstore.

Tools that we have Picked to build our Eco System :-
1. Fastlane + Jenkins  to build and deploy the mobile app.
2. crashlytics to share the Build and monitor the app.
3. Slack as the communication channel to notify all and get the feedback.

CI EcoSystem

Fastlane + Jenkins  ( Prefect Duo for CI )

Fastlane is the tool to release your iOS and Android app. It handles all the tedious tasks, like generating screenshots, dealing with code signing and releasing your application.

Fastlane tools that we have used to build our iOS React Native App

Fastlane lane executionCert :- We have used this tool to create and maintain iOS code Signing certificates.

Match :- match helped us to sync our certificates and profiles across our team using git.

gym :- This is the tool that build iOS app.

Other tools that helps to automate the process of uploading the build on the app store are:-

snapshot :- it takes localized screenshots of your iOS App on every device.

deliver :- it uploads the screenshots , metadata and your app to the App Store using a single Command

sigh :- it can create , renew , download and repair provisioning profiles (with one command).It supports App Store , Ad Hoc Development and Enterprise profiles

We have to add all these tools configurations in fastlane configurations file fastfile and it can be run by a single command ‘fastlane beta’  (beta is the name of the lane defined in the fastfile)

Jenkins is an open source automation tool written in Java with plugins built for Continuous Integration purpose. Jenkins triggers a build for every change made in the source code repository for example Git repository. Once the code is built it deploys it on the test server for testing. Concerned teams are constantly notified about build and test results.

jenkins dashboard

you can Trigger the build using the git hooks or polling the repository after a Specified interval of time


Jenkins also allows to execute the command that is needed to trigger the fastlane lane and run our test cases by adding them in execute shell

shell script We can either build and share  the app at EOD or can trigger the same on every commit when QA Cycle is in progress.

EOD or Continous CI cycle

We can easily share the automated build with the testers and Products and UAT Folks by adding the crashlytics integration in the fastlane configuration file (fast file) 

Slack :-
We can notify all of the stake holders by firing an notification on the slack. to enable the slack notification we also need to add the slack configuration in the fastlane configuration file (fast file)

At last running the test cases and Ensuring that the Build is stable and always keep remember that all this is done just by doing a usual checkin of the code in the repository 😀
npm test cases


Tagged under: , , , , ,

Back to top