Fastlane ios and gitlab ci - read this

I have spent four weeks on making an automated ios deployment to testflight working.

Heres what I have learned.

Tools and versions

Install rbenv on your runner. Trust me. I got version 1.2.0

Then I installed ruby version 3.2.0 via rbenv.

Then fastlane. This might be interesting according to some issues.

Fastlane version 2.219.0

Get an API Key

Get the appstore connect api key and store it in the gitlab ci secrets.

We will then echo it into key.json.

Gitlab runner

Set the CreateSession to true in the launchsettings of the runner. This is because we need access to the keychain.

Keychain stuff

Keychain is the main problem with all of this. Its such a big problem and hard to understand why something fails.

But to get things as stable as possible we will always create a new keychain. At every run well import our certificates at start.

Lets talk about match.

Match init. Create a match file, setup the git storage with credentials so that it wont fail. Don‘t rely on inputs from the cli.

Match should work without passing credentials to stdin.

Issues

Could not download WWDR certificate

This apparently can happen sometimes. Try it again.

Do not rely on the default keychain