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

Conventional Commits
For more detailed standards see the Conventional Commits website.
The general format for a commit is [type](scope*): [Descriptive message] where:
typeis one offeat,fix,refactor,build,chore- only feat and fix will show in the Changelogscopeis an optional parameter specifying where in the app the change happened (e.g. home, profile, chats)messageis 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-version for this, which is set up under the release script.
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.
Run the following command to generate a new full release for the App Store with a new version number.
This will generate a full new version in the form x.y.z, incrementing x,y or z according to the changes made
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:

Bitrise
Once pushed, go to Bitrise and select the app, and start a new build

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:
Select "Any iOS Device" as the target
Increment the build number to one greater than the previous version (check App Store Connect)
Product > Archive
Once archiving has finished, go to Window > Organizer
Select the build and press "Distribute App"
Keep pressing next, using the default values. This will upload the app to App Store Connect, where you can follow the next steps


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.

Make sure to press the "Save" button

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.


Last updated
Was this helpful?