Designing a Fastfile for Versioning, match, and Uploads
Fastlane lane design.
lanes bump versions, run match for signing, build with gym and gradle, upload via pilot and supply; secrets come from CI env or a vault.
committing the match passphrase or keys to the repo.
WHAT THIS TESTS Whether you can architect maintainable automation and reason about credential security across a team and CI.
A GOOD ANSWER COVERS Organize the Fastfile into focused lanes: a version lane that bumps the build number and marketing version, a signing step that calls match in readonly mode on CI to fetch the shared certificates and profiles from an encrypted git repository, a build step using gym for the iOS archive and a gradle action for the Android AAB, and upload steps using pilot for TestFlight and supply for Play. Compose these into beta and release lanes so a single command runs the whole flow. match centralizes signing: it stores encrypted certificates and profiles in a private repo, decrypted with a passphrase, so every developer and CI agent shares identical signing material instead of each generating their own. For secrets, never hardcode them; inject the match passphrase, the App Store Connect API key JSON, and a base64 keystore through CI secrets or a secrets manager, read at runtime via environment variables, and keep the match repo itself private.
COMMON WRONG ANSWERS Putting the match git passphrase, API keys, or keystore in the Fastfile or committing them. Running match in read-write mode on CI, which can regenerate and revoke certificates. Duplicating build logic across lanes instead of sharing steps.
LIKELY FOLLOW-UPS Why match avoids the certificate sprawl of each dev creating their own. The difference between match readonly and force modes. Using the App Store Connect API key instead of a session-based Apple ID login.
ONE CONCRETE EXAMPLE The release lane runs increment_build_number, match in readonly mode, gym to produce a signed .ipa, pilot to push to TestFlight, then gradle to build a signed AAB and supply to upload to Play. The MATCH_PASSWORD and the API key path come from environment variables sourced from encrypted CI secrets.
Read the original → docs.fastlane.tools
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.