82 lines
4.8 KiB
JSON

{
"name": "build-android",
"implementation": "/packages/react-native/src/executors/build-android/build-android.impl.ts",
"schema": {
"version": 2,
"outputCapture": "direct-nodejs",
"cli": "nx",
"$id": "NxReactNativeBuildAndroid",
"$schema": "https://json-schema.org/schema",
"title": "Release Build for Android",
"description": "Build target options for Android.",
"type": "object",
"presets": [
{
"name": "Build Android for current device architecture",
"keys": ["activeArchOnly"]
},
{ "name": "Build Android without metro cache", "keys": ["resetCache"] },
{ "name": "Build Android with specific tasks", "keys": ["tasks"] },
{ "name": "Build Android with a specific mode", "keys": ["mode"] }
],
"properties": {
"mode": {
"type": "string",
"description": "Specify your app's build variant",
"default": "debug",
"examples": ["debug", "release"],
"x-priority": "important"
},
"port": {
"type": "number",
"description": "The port where the packager server is listening on.",
"default": 8081
},
"tasks": {
"oneOf": [
{ "type": "array", "items": { "type": "string" } },
{ "type": "string" }
],
"description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.",
"examples": [
"assembleDebug",
"assembleRelease",
"bundleDebug",
"bundleRelease",
"installDebug",
"installRelease"
]
},
"activeArchOnly": {
"type": "boolean",
"description": "Build native libraries only for the current device architecture for debug builds.",
"default": false
},
"extraParams": {
"oneOf": [
{ "type": "array", "items": { "type": "string" } },
{ "type": "string" }
],
"description": "Custom params passed to gradle build command",
"examples": ["-x lint -x test"]
},
"interactive": {
"type": "boolean",
"description": "Explicitly select build type and flavour to use before running a build"
},
"resetCache": {
"type": "boolean",
"description": "Resets metro cache.",
"default": false
}
},
"required": [],
"examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:build-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build with custom tasks\" %}\nThe `tasks` option accepts any custom gradle task, such as `assembleDebug`, `assembleRelease`, `bundleDebug`, `bundleRelease`, `installDebug`, `installRelease`.\nFor example, pass in `bundleRelease` or `bundleRelease` to tasks, it will create with `.aab` extension under bundle folder.\nPass in `assembleDebug` or `assembleRelease` to tasks, it will create a build with `.apk` extension under apk folder.\nPass in `installDebug` or `installRelease` to tasks, it will create a build with `.apk` extension and immediately install it on a running emulator or connected device.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"tasks\": [\"bundleRelease\"]\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for debug/release\" %}\n\nThe `mode` option allows you determine whether to build for debug/release apk.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"mode\": \"debug\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for current device architecture\" %}\n\nThe `activeArchOnly` option allows you to build native libraries only for the current device architecture for debug builds.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"activeArchOnly\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n"
},
"description": "Release Build for Android.",
"aliases": [],
"hidden": false,
"path": "/packages/react-native/src/executors/build-android/schema.json",
"type": "executor"
}