Deployment

Follow the steps in this guide to deploy a new app version to Testflight or the App Store

Pull Requests

When merging a Pull Request, use the Squash strategy, which squashes all of the commits in the PR into one single commit, which is merged into master/staging. You'll need to provide a commit message for this following the Conventional Commit standardarrow-up-right.

Enter a commit message, with an optional extended description, then Squash & Merge

Conventional Commits

For more detailed standards see the Conventional Commits websitearrow-up-right.

The general format for a commit is [type](scope*): [Descriptive message] where:

  • type is one of feat, fix, refactor, build, chore - only feat and fix will show in the Changelog

  • scope is an optional parameter specifying where in the app the change happened (e.g. home, profile, chats)

  • message is the message that shows in the changelog. It should be in the present tense (e.g. "Add new button" rather than "Added new button")

  • You can also add an extended description, but this will not show in the changelog

Locally

From master, the first step is to increment the version and generate a changelog of all the changes made since the last release.

We use a tool called standard-versionarrow-up-right for this, which is set up under the release script.

circle-info

You may need to install standard-version locally using npm -g

Run the following command to generate a new Alpha prerelease for Testflight

This will generate a new version with the suffix x.y.z-alpha.n where n is the Alpha version. The version number (x.y.z) will stay the same.

After generating the Changelog and new version number, standard-version will automatically commit the changes to the master branch. You'll then need to push those changes to the repo using the command the tool outputs for you:

Copy and run the command outputted by standard-version

Bitrise

Once pushed, go to Bitrisearrow-up-right and select the app, and start a new build

Go to the app page and press the Start Build button

In the window that pops up, ensure the main branch is selected and enter a note for the release in the form "Release {version #}". Select the Testflight or Primary workflow (TF to release to TestFlight, Primary for the App Store). Start the build using the button at the bottom of the modal.

This will start the build, which will build and automatically push the build to App Store Connect.

Build Fails

If the build fails, it is usually a one off issue. First try rerunning the build, which usually fixes the issue.

If that does not fix it, try Archiving locally. That should show any errors, which can then be fixed.

If the build continues to fail on Bitrise, you'll need to upload the build to Apple Connect manually through Xcode:

  1. Select "Any iOS Device" as the target

  2. Increment the build number to one greater than the previous version (check App Store Connect)

  3. Product > Archive

  4. Once archiving has finished, go to Window > Organizer

  5. Select the build and press "Distribute App"

  6. Keep pressing next, using the default values. This will upload the app to App Store Connect, where you can follow the next steps

Select Any iOS Device
Increment the build number

App Store Connect

TestFlight

When the build is complete in Bitrise, it will show up under App > Testflight > Builds > iOS, with a new build number and the status "Processing". How long the build takes to process depends on how busy Apple's servers are (it's usually quicker in the morning).

Once finished processing, it'll have the status "Missing Compliance". Click on the build number (don't press the Manage button). This will take you to the Build Info page. Copy the Changelog from GitHub for that version into the text box under Test Details.

circle-info

There's a character limit in this text box so only copy the changes from the most recent version

Copy and paste the changelog into the text box

Make sure to press the "Save" button

Save your changes

Compliance

Before the build can be released to testers, you'll need to provide Compliance information. Press the "Provide Export Compliance Information" button

In the window that opens, select Yes, then press Next, and select Yes again. Then press "Start Internal Testing". This will release to the Alpha group of testers.

Start Testing

Last updated

Was this helpful?