Join our Newsletter — 33% off our NHI Course

Development Build

A development build is an Expo app package that includes its own native runtime and can host custom native modules. Security teams need it when controls depend on code that cannot run inside Expo Go, such as attestation, native secret handling, or other runtime protection libraries.

What Makes a Development Build Different

A development build is not just a convenience package, it is a runtime that you control. Because it includes its own native runtime, it can execute code paths that Expo Go cannot, which makes it the right choice when security tooling depends on native capabilities rather than JavaScript alone.

That distinction matters because many security controls are implemented below the app layer. If attestation, secure storage integrations, jailbreak or root checks, or other native protection libraries are part of the design, the build has to support those native modules from the start.

Why Security Teams Use Development Builds

Security work often fails in a managed preview environment because the control under test is not actually present there. A development build lets teams validate how the app behaves when native trust signals, secret handling, or device integrity checks are enforced by code that is compiled into the app itself.

This is especially important for mobile applications that need stronger runtime assurance than a generic demo container can provide. The security question is not whether the user interface works, but whether the protection mechanism survives in the real app runtime where it will actually operate.

Native Modules, Secret Handling, and Runtime Protection

Development builds are the practical bridge between app development and production-grade mobile security. They allow custom native modules to participate in the app lifecycle, which is essential when secrets must be protected by platform-specific APIs, when attestation must be performed locally, or when a library needs access to device or OS features that a generic container cannot expose.

That makes the build model part of the security architecture, not just the release process. If the control depends on native code, then the build type determines whether the control is testable, enforceable, and eventually deployable.

For teams evaluating runtime protections, the build environment should be treated as part of the control surface, because a protection that cannot run in the chosen build path is not an operational control at all.

Where the Development Build Sits in the Delivery Flow

In practice, development builds sit between local experimentation and production release. They are used to validate native dependencies early, before the app is shipped, so that security-sensitive features are not discovered too late in the delivery cycle.

That role is particularly valuable when multiple teams depend on the same app runtime, such as product engineering, mobile platform engineering, and security engineering. Each group needs confidence that the native runtime they rely on is the one they will continue to use through testing, staging, and release.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP ASVS, NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
OWASP ASVS V15 — Secure Coding and Architecture Development builds affect whether native security controls can be integrated into the app runtime.
Recommendation — Validate that native security controls are implemented in the app architecture and can run in the target build.
NIST SP 800-53 Rev 5 CM-2 — Baseline Configuration Build type and native runtime composition are configuration choices that alter the security baseline.
IA-5 — Authenticator Management The term explicitly covers native secret handling and runtime protection for secrets and authenticators.
Recommendation — Define the build baseline so security-critical native capabilities are consistently present. Manage secret material so native runtime protections can protect it across the app lifecycle.
CIS Controls v8 CIS-16 — Application Software Security Development builds are used to verify security behavior in application code and native dependencies.
Recommendation — Test application security functions in the build path that matches production runtime behavior.