Bitrise iOS Continuous Integration and Delivery
In this article
Bitrise is a Continuous Integration and Delivery service that supports a variety of platforms. It allows you to configure a workflow based on how you want your project to be built.
The key strength of Bitrise is the visual nature of building workflows, which presents a clear depiction of steps your builds will take every time they are triggered by a git push.
To configure Bitrise, you will need an Apple Developer account, a GitHub, GitLab or BitBucket repository which contains an iOS project.
Sign up for a free 14 day developer trial and then add your first app!
When you log in for the first time you will see the below image. Click on the Add your first app button to get started.
Step 1: Set your Bitrise app privacy to private.
Step 2: Connect the repository you will use.
Step 3: Setup the repository access (I select the 'No, auto-add SSH Key' button).
Step 4: Choose your development branch.
Step 5: Once your repository is validated, it will show you the detected build configuration.
Note: If you receive a "No shared schemes found for project" error, follow the next steps. If not, then proceed to Step 6.
Step 5A: Go to manage schemes in Xcode and enable the shared option for the scheme being used. If it is already enabled, toggle it off then on again for git to recognize the change.
Step 5B: Push the changes to your branch.
Step 5C: Back on Bitrise, choose Scan another branch and enter your branch name again.
Step 5D: Your repository will now be validated.
Step 6: You can pick the way the IPA file will be exported, we will use ad-hoc since we are creating builds for our internal team.
Step 7: Click the Edit button to modify our project build configuration.
Step 8: Select the proper stack based on your Xcode version and macOS. Then click the Next button.
Step 9: Confirm your selection.
Step 10: Select the App Icon, if needed.
Step 11: Lastly, allow Bitrise to use a webhook to trigger builds. Click on the Finish button at the top of the screen.
Success!
We are done! Bitrise will kick off a build right away. This will work with a basic project where we don't have specific certificates and profiles to use. We will take a look at that and the workflow system next.
Customizing the workflow
Congratulations on your first successful build!
We may need to update Bitrise to properly build our repo on each trigger event. Bitrise performs a clean build on a virtual machine, so if we have pods to install or specific certificates and profile provisions to use, we need to supply them.
Click on the Dashboard link at the top of the screen, then click on your app in the APPS menu on the right side of the screen.
On the following screen, click the Workflow tab at the top.
The Workflow Editor is where you can customize the project build flow.
The Code Signing tab is for the project's provisioning profiles and code signing certificates (if applicable).
The $Env Vars tab is for any project setup that you need to change manually, such as using a workspace instead of a project when Bitrise attempts to build the app.
The Workflows tab is where the heavy lifting is done.
Bitrise allows you to control the flow of the build process by adding or removing steps that you do not need.
You can force steps to only run if a previous step has passed, which is perfect for TDD as we can prevent a build from deployment if the test step failed.
Each step can be customized and there are a lot of options to choose from.
I hope this walk-through is helpful with getting a Bitrise Continuous Integration and Delivery service up and running. This is only the tip of the iceberg, as there is a lot you can do to make your deployment work for your project.
I would love to hear what you think about Bitrise and any other CI/CD services in the comments below. Feel free to reach out to us directly to get in touch.