Guide

Mobile DevSecOps implementation guide

Plan an app protection rollout with your release team: pilot on representative builds, map who owns keys, policy, tests and signing, roll out with a way back.

  • Pilot on real builds

    Choose builds that look like your actual releases and agree what success means before the pilot starts.

  • Keys stay put

    Protection slots into the pipeline you run. Signing credentials and store access remain where your release team keeps them.

  • A way back first

    Write down failure rules, monitoring and rollback before the first protected build reaches users.

Security and release teams plan a protection rollout in three stages. Run a pilot on a handful of builds that represent your real releases, with success criteria agreed before work starts. Map ownership inside the pipeline: who holds credentials, who changes protection policy, who tests and who signs. Then roll out with failure rules, monitoring and a rollback path written down in advance. The plan below treats Android and iOS as separate release tracks, including Flutter and React Native apps, because stores, signing and tooling differ. It feeds your change-management process rather than replacing it.

How Otukan fits a pipeline is covered on mobile DevSecOps. The full set of evaluation aids is on solution guides.

Pilot plan

A pilot proves the protection step on builds you actually ship. Keep it narrow, but make it honest.

Choose representative builds

  • One app per framework you release: native Android, native iOS, Flutter, React Native.
  • The release variant, built by the pipeline, not a developer’s machine.
  • The build with the most native code and the most third-party SDKs, because it is the likeliest to surface conflicts.
  • Every flavour, market variant or white-label copy that ships from the same code.
  • Any app extension, widget or companion target that ships inside the iOS archive.

Agree success criteria

CriterionEvidenceOwner
The protected build passes the pipelineJob logs from your CI/CD systemRelease engineering
Crash traces stay readableA test crash translated to source linesMobile engineering
Key journeys behave as beforeRegression run on the protected buildQA
Detections fire where expectedAuthorised lab reproduction per platformSecurity
Store submission is acceptedUpload to internal testing and TestFlightRelease engineering

How Otukan answers. Otukan’s engineers join the pilot and map, with yours, where the protection step sits in your pipeline for each platform. The step fits the CI/CD system you already use, does not send your code or artefacts anywhere you have not agreed, and every protected build records the commit, toolchain and protection profile version, with logs you keep.

Pipeline ownership

Protection adds one stage to your pipeline and several decisions to your team. Assign each before the pilot ends.

Credentials

  • Where do the Android upload key and the iOS distribution certificate and provisioning profiles live, and who can use them?
  • Does the protection stage need any secret beyond its own configuration?
  • Is Play App Signing in use, so that Google Play holds the app signing key and your team holds the upload key?

Policies

  • Is the protection profile stored in version control next to the app code?
  • Who approves a change to protection settings, and is that review recorded?

Testing and signing

  • Does the regression suite run on the protected artefact, not the unprotected one?
  • Does signing happen after protection, with the same controls as today?
TaskSecurityMobile engineeringRelease engineering
Own the protection profileApprovesProposes changesDeploys
Hold signing credentialsAudits accessNo access neededOwns
Run protected regressionReviews resultsFixes issuesSchedules
Receive runtime signalsOwns response rulesAdds contextReports per release

How Otukan answers. The Otukan step never needs your signing keys or store credentials; signing stays exactly where it is today. The same inputs and protection profile produce an equivalent protected artefact, and R8 mapping files, native debug symbols and dSYMs remain usable for crash reporting.

Rollout

Decide how you will stop before you decide how you will start.

Failure decisions

  • If the protection stage fails, does the job fail, or could an unprotected build slip through?
  • Who can approve an urgent fix release, and does it follow the same protected path?

Monitoring

  • Which runtime signals, crash reports and support tickets will you compare against the previous release?
  • Will you release through a Google Play staged rollout and an App Store phased release?

Rollback

A published version cannot be pulled back from devices that installed it. Rollback means halting the Google Play staged rollout or pausing the App Store phased release, keeping the previous protected build ready and shipping a corrected build. On iOS, a phased release only paces automatic updates: anyone can still download the new version manually from the App Store, so plan the fix as if every user may have it.

  1. Release to internal testers and TestFlight groups.
  2. Start a staged rollout on Google Play and a phased release on the App Store.
  3. Compare signals, crashes and support volume with the prior release.
  4. Widen the rollout, or halt it on Google Play, pause it on the App Store and ship the corrected build.

How Otukan answers. A failed or partial Otukan protection returns a failing exit code and fails the job, so an unprotected build cannot slip into the release by accident. Runtime signals reach your backend per release for monitoring, and where the design allows, a control’s response can be relaxed from your server without a new build.

Testing practice for protected builds is covered on protected mobile app testing.

Common questions

  • Does the Otukan protection step need our signing keys?

    No. The Otukan step never needs your signing keys or store credentials, and signing stays where your release team keeps it today. The step fits the CI/CD system you already use and does not send your code or artefacts anywhere you have not agreed.

  • What happens if the protection step fails?

    The pipeline job fails. A failed or partial Otukan protection returns a failing exit code instead of producing an unprotected build. Decide in advance who can approve an urgent fix release, and check that it follows the same protected path as every other release.

  • Which builds should we use for a pilot?

    Builds that represent your real releases: one app per framework you ship, the release variant built by the pipeline, the build with the most native code and third-party SDKs, and every flavour or market variant. Agree success criteria, such as readable crash traces and store acceptance, before work starts.

  • How do we roll back a protected release?

    Halt the Google Play staged rollout or pause the App Store phased release, keep the previous protected build ready and ship a corrected build. A published version cannot be pulled back from devices that installed it, and on iOS users can still download the new version manually.

  • Can we change a control’s response without a new build?

    Where the design allows it, yes. A control’s response can be relaxed from your server without shipping a new build. Runtime signals also reach your backend per release, so you can compare them with crash reports and support tickets from the previous release.

Plan your first protected release

Tell us the platforms and frameworks you release, the CI/CD system you run and how your builds are signed today. We never ask for signing keys, store logins or production data.

Or request a technical demo