Skip to main content

appflow build android

[appflow, build, android]

This command creates an Android build on Appflow. While the build is running, it prints the remote build log to the terminal.

appflow build android [debug, release] [flags]

Examples

appflow build android debug --app-id=a1234bc --commit=a9eb85e
appflow build android release --app-id=b3456cd --commit=4c511f1
appflow build android debug --app-id=a1234bc --commit=a9eb85e --environment="My Custom Environment Name"
appflow build android debug --app-id=a1234bc --commit=a9eb85e --native-config="My Custom Native Config Name --native-app-preview"
appflow build android release --app-id=b3456cd --commit=4c511f1 --aab --apk --apk-name="my-app-prod.apk" --webhook-url="http://webhook.com/test"

Flags

NameTypeDefaultDescription
--app-id [required]stringAppflow app id
--aabbooleanfalseDownload aab file
--aab-namestringDownload aab and rename file. Example: mapp.aab
--apkbooleanfalseDownload apk file
--apk-namestringDownload apk and rename file. Example: myapp.apk
--app-bundle-idstringNative config application bundle ID. Example: com.company.app
--app-namestringNative config application name
--build-stackstringTarget platform ("Linux - 2023.10" / "Linux - 2024.10" / "Linux - 2024.06" / "Linux - 2023.06" / "Linux - 2023.04"), defaults to latest stack
--commitstringCommit sha
--dependency-cachingbooleanfalseEnabled NPM caching
--detachedbooleanfalseAsynchronously run appflow build
--envstring[][]Variables to expose to your build. Variables defined this way override those loaded using the env-file flag. Example: --env VAR=value
--env-filestring[][]Files declaring environment variables to expose to your build. Variables from later files overwrite variables from earlier files.
--environmentstringThe name of the predefined Appflow Environment to expose to your build
--live-update-app-idstringAppflow application ID
--live-update-channel-namestringLive Update channel name
--live-update-disable-deploybooleanfalseDisable Live Updates from being applied
--live-update-max-storenumber2Number of previous Live Updates that can be stored on a device
--live-update-methodstring"background"Live Update method to determine how the app will check for and apply updates, "background", "auto", or "none"
--live-update-min-background-durationnumber30Number of seconds the app needs to be in the background for it to have been considered "closed"
--native-app-previewbooleanfalseEnable app preview directly in the browser via a secure public URL with Appetize (only compatible with debug builds)
--native-configstringThe name of the native config to use for the build. Native configs are defined in the UI.
--secretstring[][]Secrets to expose to your build. Example: --secret VAR=value
--signing-certstringSigning certificate (not required for debug builds)
--webhook-urlstringSchedules a webhook that executes after the build finishes. The payload will include a URL for downloading build artifacts if the build succeeds.

Global Flags

NameTypeDefaultDescription
-h, --helpbooleanfalsePrint help information for command
--configstringAppflow config file (.appflow.yaml by default)
--jsonbooleanfalseFor commands with output, shortcut to print as JSON
--outputstring"text"For commands with output, print as [json] or human readable [text]
--tokenstringIonic authorization token

Outputs

NameTypeDescription
appIdstringYour app's unique identifier in Appflow.
buildId (optional)numberA unique identifier for a build done in Appflow.
buildNumber (optional)numberAn app-specific build number for builds done in Appflow.
buildStatus"CREATED" | "PENDING" | "RUNNING" | "BUILDING" | "FAILED" | "SUCCESS" | "CANCELED"The current state of your build in Appflow.
platform"ANDROID" | "IOS" | "WEB"The ecosystem you are building for.
commitstringThe commit hash.
buildStackobjectA Build Stack in Appflow.
.namestringThe friendly name for a Build Stack in Appflow.
.dependencies (optional)object[]The list of pinned software versions for a Build Stack in Appflow.
.namestringThe name of a software used by a Build Stack in Appflow.
.versionstringThe pinned version of a software used by a Build Stack in Appflow.
environment (optional)objectThe Environment for your build in Appflow.
.namestringThe name of an Environment you've created in Appflow.
.files (optional)string[]The list of local environment files provided to this command.
.variables (optional){ "string": string, ... }The combined list of all environment variables used for a build.
.secrets (optional){ "string": string, ... }The combined list of all environment secrets used for a build. The key values are not downloaded; the key names are just displayed for reference.
artifacts (optional){ "APK": string, ... }All artifacts that were saved by Appflow during a build, and are available for download.
dependencyCaching (optional)booleanWhether or not dependency caching was enabled for this build.
webhooks (optional)object[]List of associated webhooks.
.urlstringThe URL of the associated webhook.
.statusgenerated.BuildNotificationStatusThe status of the associated webhook.
signingCert (optional)stringThe signing certificate used by Appflow to deploy a build to the App Stores.
buildTypestringThe kind of native build done by Appflow, e.g. dev or release builds.
nativeConfig (optional)objectA Native Config to manipulate your build in Appflow.
.namestringThe name of a Native Config you've created in Appflow.
.base (optional)objectThese Native Config variables allow you to override properties on a Native Build.
.name (optional)stringOverride the home screen name for a Native Build.
.bundleId (optional)stringOverride the bundle identifier for a Native Build.
.liveUpdatesConfig (optional)objectThese Native Config variables allow you to override properties used by the Live Updates Plugin.
.appId (optional)stringYour app's unique identifier in Appflow.
.channelName (optional)stringThe name of a channel that hosts Live Updates.
.maxStore (optional)numberThe maximum number of updates for the Live Updates Plugin to store on the device.
.minBackgroundDuration (optional)numberThe number of seconds the app needs to be in the background before the Live Updates Plugin considers it closed.
.updateMethod (optional)stringThe update method for the Live Updates Plugin to use.
.disableDeploy (optional)booleanWhether the Live Updates Plugin should be disabled or not.
appetizeUrl (optional)stringThe URL of the Appetize preview.
Successful Output
{
"appId": "052b32ac",
"buildId": 6010455,
"buildNumber": 25,
"buildStatus": "SUCCESS",
"platform": "ANDROID",
"commit": "cef1sdca",
"buildStack": {
"name": "Linux - 2022.10",
"dependencies": [
{
"name": "Cordova CLI",
"version": "11.0.0"
},
{
"name": "Ionic CLI",
"version": "6.20.3"
},
{
"name": "Node.js",
"version": "18.12.1"
},
{
"name": "Node.js versions",
"version": "14.21.1 / 16.18.1 / 18.12.1"
},
{
"name": "npm",
"version": "8.19.3"
},
{
"name": "Yarn",
"version": "1.22.19"
},
{
"name": "Python",
"version": "3"
},
{
"name": "Debian",
"version": "11.4"
},
{
"name": "Gradle",
"version": "5.6.4"
},
{
"name": "OpenJDK",
"version": "1.8.0_332 / 11.0.16"
},
{
"name": "Android SDK",
"version": "27-33"
}
]
},
"environment": {
"name": "Test Environment",
"files": [
".env-file1",
".env-file2"
],
"variables": {
"Var1": "value1",
"Var2": "value2"
},
"secrets": {
"Sec1": "********",
"Sec2": "********"
}
},
"artifacts": {
"AAB": "ionic-app-main-cef1sdca-debug.aab",
"APK": "ionic-app-main-cef1sdca-debug.apk"
},
"dependencyCaching": null,
"webhooks": null,
"signingCert": "Android Signing Certificate Name",
"buildType": "DEBUG",
"nativeConfig": {
"name": "Default Configuration",
"base": {
"name": "Ionic App",
"bundleId": "com.ionicapp.bundle"
},
"liveUpdatesConfig": {
"appId": "052b32ac",
"channelName": "Production",
"maxStore": 3,
"minBackgroundDuration": 30,
"updateMethod": "auto",
"disableDeploy": false
}
},
"appetizeUrl": null
}
Detached Output
{
"appId": "052b32ac",
"buildId": 6010455,
"buildNumber": 25,
"buildStatus": "CREATED",
"platform": "ANDROID",
"commit": "cef1sdca",
"buildStack": {
"name": "Linux - 2022.10",
"dependencies": [
{
"name": "Cordova CLI",
"version": "11.0.0"
},
{
"name": "Ionic CLI",
"version": "6.20.3"
},
{
"name": "Node.js",
"version": "18.12.1"
},
{
"name": "Node.js versions",
"version": "14.21.1 / 16.18.1 / 18.12.1"
},
{
"name": "npm",
"version": "8.19.3"
},
{
"name": "Yarn",
"version": "1.22.19"
},
{
"name": "Python",
"version": "3"
},
{
"name": "Debian",
"version": "11.4"
},
{
"name": "Gradle",
"version": "5.6.4"
},
{
"name": "OpenJDK",
"version": "1.8.0_332 / 11.0.16"
},
{
"name": "Android SDK",
"version": "27-33"
}
]
},
"environment": {
"name": "Test Environment",
"files": [
".env-file1",
".env-file2"
],
"variables": {
"Var1": "value1",
"Var2": "value2"
},
"secrets": {
"Sec1": "********",
"Sec2": "********"
}
},
"artifacts": {},
"dependencyCaching": null,
"webhooks": null,
"signingCert": "Android Signing Certificate Name",
"buildType": "DEBUG",
"nativeConfig": {
"name": "Default Configuration",
"base": {
"name": "Ionic App",
"bundleId": "com.ionicapp.bundle"
},
"liveUpdatesConfig": {
"appId": "052b32ac",
"channelName": "Production",
"maxStore": 3,
"minBackgroundDuration": 30,
"updateMethod": "auto",
"disableDeploy": false
}
},
"appetizeUrl": null
}