Source CodeBuild Guide
Prepare your Android source build.
Bring a complete project, choose the output, and inspect the result. Source compiles need Builder or Pro. Free is a marked Android Preview of a live website.
Choosing a service? See the supported source workflow. Working in Flutter? Compare the local CLI and cloud routes.
Choose a supported input
- Flutter: include pubspec.yaml, your Dart application source, declared assets, local packages, and the lockfile when present. Keep android/ if it contains custom native code, plugins, manifests, or flavors.
- Native Android: include the Gradle settings and build files, application module, and full Gradle wrapper when provided. A lone gradlew or source file is not a complete project.
- Capacitor: prepare its Android project, including android/ and required bundled web assets. A raw React or Next.js export is not automatically a native build.
- React Native, Ionic, and Expo source builds are waitlist only. Apple source uploads are disabled. Windows is a URL-wrapper workflow, not a source compiler.
Package the project root
- Place the project at the ZIP root or inside one top-level folder. Do not upload a deeply nested monorepo and expect the builder to find an arbitrary application directory.
- Exclude generated caches such as build/, .dart_tool/, and node_modules/. Keep the actual files referenced by the project, including assets and local dependencies.
- Do not include private signing keys, server credentials, or unrelated files. Use the available signing configuration instead of embedding a keystore in a public repository.
- Use a normal, unencrypted ZIP. Archive limits, unsafe paths, links, and project validation can reject an upload; follow the error shown by the wizard.
Use an accessible Git repository
- Supply the repository's HTTP(S) clone URL and the intended branch or tag. The repository must be reachable by the build service without an interactive login.
- Do not paste a private access token into a URL. If the service cannot access the repository, upload an appropriate project ZIP instead.
- Include required dependency declarations and lockfiles. Do not assume your laptop's caches, private network services, or credentials are present on the build machine.
Optional: code2native.json
- Standard projects use detected defaults. For a custom command or artifact location, place code2native.json at the detected project root.
- The example below is for a native Android Gradle project with an app module, not a Flutter root. Commands must be non-interactive; paths must stay within the workspace.
- artifacts.dir is a safe relative directory that must exist and contain the requested outputs after the build. Do not point it at the entire source tree.
{
"artifacts": {
"dir": "app/build/outputs"
},
"commands": {
"ANDROID": "./gradlew bundleRelease assembleRelease"
}
}Match the output to distribution
- For native Android, assembleRelease produces an APK and bundleRelease produces an AAB. Flutter uses its own toolchain; use the default Flutter route unless your project needs an explicitly configured command.
- A Play Store build needs a bundle-producing task. Declare the correct command for your modules and flavors instead of relying on automatic command adjustments.
- A release-mode command does not prove the correct signing key was used. Inspect the artifact's package, version, and signer. For an existing app, preserve the signing and upload-key relationship needed for updates.
- An AAB is a publishing input, not an app-store approval. Test the artifact and complete the account, policy, and submission requirements for the chosen channel.
Understand the build result and cost
- Builder or Pro is required for source compiles. Check available credits and plan limits before submitting; an App license is for the release wrap of one website.
- Build duration depends on worker load, dependency downloads, and the project. Follow status and logs instead of assuming a fixed completion time.
- The builder can make logged compatibility adjustments, but cannot supply missing application logic or guarantee that arbitrary source compiles. Customer compile errors do not refund credits; platform faults do.
- Read the first actionable error, fix the relevant file or command, and rebuild from the same project. Source compilation runs in isolated containers, not on the web host.
Before submitting: check plan limits. Before distributing: verify your Android build and review the submission checklist.