diff --git a/docs/generated/api-react-native/executors/build-android.md b/docs/generated/api-react-native/executors/build-android.md index 311fc01671..03f1f3086c 100644 --- a/docs/generated/api-react-native/executors/build-android.md +++ b/docs/generated/api-react-native/executors/build-android.md @@ -16,3 +16,9 @@ Options can be configured in `workspace.json` when defining the executor, or whe Type: `boolean` Generate apk file(s) rather than a bundle (.aab). + +### debug + +Type: `boolean` + +Generate a debug build instead of a release build diff --git a/packages/react-native/src/executors/build-android/build-android.impl.ts b/packages/react-native/src/executors/build-android/build-android.impl.ts index ff41ec862e..37c9260e15 100644 --- a/packages/react-native/src/executors/build-android/build-android.impl.ts +++ b/packages/react-native/src/executors/build-android/build-android.impl.ts @@ -35,9 +35,11 @@ function runCliBuild( options: ReactNativeBuildOptions ) { return new Promise((resolve, reject) => { + const gradleCommand = getGradleCommand(options); + childProcess = spawn( process.platform === 'win32' ? 'gradlew.bat' : './gradlew', - [options.apk ? 'assembleRelease' : 'bundleRelease'], + [gradleCommand], { cwd: join(workspaceRoot, projectRoot, 'android'), stdio: [0, 1, 2], @@ -60,3 +62,19 @@ function runCliBuild( }); }); } + +function getGradleCommand(options: ReactNativeBuildOptions) { + if (options.apk && options.debug) { + return 'assembleDebug'; + } + + if (options.apk) { + return 'assembleRelease'; + } + + if (options.debug) { + return 'bundleDebug'; + } + + return 'bundleRelease'; +} diff --git a/packages/react-native/src/executors/build-android/schema.d.ts b/packages/react-native/src/executors/build-android/schema.d.ts index 5f42ee8024..f7ca568da1 100644 --- a/packages/react-native/src/executors/build-android/schema.d.ts +++ b/packages/react-native/src/executors/build-android/schema.d.ts @@ -1,3 +1,4 @@ export interface ReactNativeBuildOptions { apk?: boolean; + debug?: boolean; } diff --git a/packages/react-native/src/executors/build-android/schema.json b/packages/react-native/src/executors/build-android/schema.json index 034fae138c..985c0e5bae 100644 --- a/packages/react-native/src/executors/build-android/schema.json +++ b/packages/react-native/src/executors/build-android/schema.json @@ -9,6 +9,10 @@ "apk": { "type": "boolean", "description": "Generate apk file(s) rather than a bundle (.aab)." + }, + "debug": { + "type": "boolean", + "description": "Generate a debug build instead of a release build" } }, "required": []