We have a big team and need to work with some release strategies that require some environments.
To execute our release pipeline, we must execute the following steps:
- Development: developing new features, fix bugs, etc…
- QA: we send a new IPA and APK to QA team.
- Beta: this is a controlled production environment (here we use TestFlight and Google Play Beta).
- Production: ready to users.
Our BIG problem is in the QA step.
We want to automate these build steps to prevent developers to waste time on manual builds and we can’t use TestFlight for QA step.
Why we can’t use TestFlight?
- TF have only ONE environment and we will control the release by number, what will be terrible and impracticable.
- For TF, we must wait for apple done their revision of the app to let us share the build with QA Team.
- Building the IPA on Expo build service results in a 250MB IPA file. When we detach and export an archive, the resultant file is a 15MB IPA.
For these reasons, we want to use the Microsoft App Center. And now is the challenge.
We will use AppCenter to release to our QA team and it’s good because on AppCenter the release is instantaneous once the build finishes (no need to wait to download a 250MP file, upload to TestFlight, wait for Apple validation and then send the updates to our QA team).
Note: One problem here is: expo uses Distribution Cert to build the app and we can’t release an app outside the TestFlight with this build configuration.
We want to build the expo app using the development credentials and when we execute the command “exp build: ios” passing all the development certs (Cert, Push and Provisioning), the build crashes with “the mobile provisioning does not match to the certificate” but when we detach and build with these certificates, the build works.
For Android, we can share the expo build and it’s amazing. But for iOS, it’s disabled (https://docs.expo.io/versions/v28.0.0/workflow/publishing#on-ios-you-cant-share-your-published) and we must test on iOS.
And now the question: we can use “exp build:ios” with development certificates (cert, push and provisioning profile)?