Skip to content
This repository has been archived by the owner on Mar 6, 2024. It is now read-only.

TestFlight

Stefan Arentz edited this page Feb 1, 2022 · 5 revisions

Focus & Klar on TestFlight

This page explains how Focus & Klar are on TestFlight and how that works from a CI perspective.

TestFlight Builds and Groups

Both Focus and Klar are on TestFlight. We have both internal groups (for Mozillians with an AppStore Connect account like developers and QA) and also external groups for public beta testing.

We send three kinds of builds to TestFlight:

  • Nightly Builds of Focus 9000 to our Internal Testers
  • Release Builds like Focus 97.0 and Focus 98.0-RC.1 to our Internal Testers
  • Beta Builds of Focus 9000 and Klar 9000 to our Public Testers

Focus 9000 exists to make it easier to send builds to TestFlight without needing to ask Apple for a review every time we upgrade the version number of Focus.

Nightly Builds (Focus & Klar 9000.0)

Every night, through a Bitrise periodic task, we run the release plan on the main branch. This will result in a Focus & Klar 9000 build and the release plan will push it automatically to TestFlight.

Because of the Build Distribution: Automatic for Xcode Builds setting on the two internal test group, those builds will immediately go to all our internal testers. The primary use is Developers and QA who then have easy access to a release-type build of the latest code.

Sometimes it is needed to do an additional build during the day. This can be easily done by going into the Bitrise dashboard and triggering a manual release build from the main branch. It takes about 10 minutes for the build to be pushed to AppStoreConnect and then some random time for the build to be processed and sent to TestFlight. That process is fully automatic - no manual steps are needed except to trigger a build.

Release Builds

Release builds that are triggered through the process described in New Release Checklist also appear on TestFlight and are available to people in the Internal Testing group. This is useful for QA to do a final sign off on a build that we pick for the App Store.

These builds are triggered in Bitrise through the creation of a release tag. The Bitrise plan that is executed is the same release plan as for Nightly builds, except it will build from a tag on a release branch.

Note that Release Builds do not go to public testers. They are only for internal verification.

Beta Builds

The Beta builds are those that the general public can try out. All these builds have the same version, 9000.0, but of course an incrementing build number.

These builds are picked manually by going in to AppStoreConnect to the TestFlight settings for Focus and Klar and then adding a new build to the Public TestFlight Group group. This build must be a 9000.0 one so usually we just pick the latest available that was created as part of the Nightly task.

When making a build available for testing, TestFlight will ask for a What To Test text. This is shown in the TestFlight app on people's devices when they get notified that a new build is available. We've kept that simple or detailed depending on the build. For example:

  • This build is the first release candidate for Focus 98
  • In this build we have moved the application menu to the top toolbar for easier access.
  • This build features shortcuts to your favorite sites

In general it is nice to give people a bit of feedback on what is new or what they can try out.

Note that Bitrise always builds both Focus and Klar automatically, but we need to publish the builds to users manually and for both products.