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.

Add your first app button

Step 1: Set your Bitrise app privacy to private.

Bitrise app privacy

Step 2: Connect the repository you will use.

Connect repository
Successful repository connection

Step 3: Setup the repository access (I select the 'No, auto-add SSH Key' button).

Additional private repository

Step 4: Choose your development branch.

Choose development branch

Step 5: Once your repository is validated, it will show you the detected build configuration.

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.

Manage schemes in Xcode

Step 5B: Push the changes to your branch.

Push changes to the branch

Step 5C: Back on Bitrise, choose Scan another branch and enter your branch name again.

Scan another branch

Step 5D: Your repository will now be validated.

Validated repository

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.

Select IPA export method

Step 7: Click the Edit button to modify our project build configuration.

Selected project build configuration

Step 8: Select the proper stack based on your Xcode version and macOS. Then click the Next button.

Select a stack

Step 9: Confirm your selection.

Confirm selected project

Step 10: Select the App Icon, if needed.

Select app icon

Step 11: Lastly, allow Bitrise to use a webhook to trigger builds. Click on the Finish button at the top of the screen.

What is a Webhook

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.

Kicked off first test build

Customizing the workflow

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.

Apps menu

On the following screen, click the Workflow tab at the top.

Workflow tab

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).

Code Signing tab

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.

App environment variables

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.

Workflow editor

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.

Technologies