How would you set up CI/CD for a mobile app?
What the interviewer wants to hear
- Run lint, unit tests and builds on every pull request
- Manage signing keys and certificates securely in CI
- Automate version numbers and builds with Fastlane or Gradle tasks
- Distribute internal builds to testers (TestFlight, Play internal testing)
- Automate store upload, staged rollout and symbol upload
Model answer
On every pull request, CI runs lint, static analysis, unit tests and a debug build for both platforms, and blocks merge on failures. For releases, a pipeline in GitHub Actions, Bitrise or similar builds signed release artifacts. Signing material never lives in the repo: the Android keystore and passwords are encrypted CI secrets, and iOS certificates and profiles come from fastlane match or App Store Connect API keys. Build numbers are generated automatically so every upload is unique. Fastlane lanes upload builds to TestFlight and Play internal testing so QA always has the latest version. The same lanes upload dSYMs and R8 mapping files to Crashlytics. Promotion to production is a manual approval followed by a staged rollout, and we watch crash-free rate before going to 100 percent.
Can you answer it under time pressure?
Take a timed medium round and get scored on every answer.
More medium Mobile App Developer questions
- How would you add offline support to an app that currently only works online?
- Users say a list in your app stutters while scrolling. How would you find and fix the problem?
- Walk me through how you release a new version of a mobile app to the stores.
- What is dependency injection and how have you used it in a mobile app?
- What security practices do you follow when building a mobile app?
- How do you manage state in a Flutter or React Native app as it grows beyond a few screens?
- What testing strategy do you use for a mobile app, and what do you test at each level?
- How would you implement deep links in a mobile app from end to end?
- How do you make a mobile app accessible, and how do you check it?