appflow build ios
This command creates an iOS build on Appflow. While the build is running, it prints the remote build log to the terminal
appflow build ios [ad-hoc, app-store, development, enterprise, simulator] [flags]
Examples
appflow build ios development --app-id=a1234bc --commit=a9eb85e --signing-cert="iOS Signing Certificate Name"
appflow build ios app-store --app-id=b3456cd --commit=4c511f1 --signing-cert="iOS Signing Certificate Name"
appflow build ios app-store --app-id=b3456cd --commit=4c511f1 --signing-cert="iOS Signing Certificate Name" --ipa --ipa-name=my_custom_file_name.ipa
appflow build ios development --app-id=a1234bc --commit=a9eb85e --signing-cert="iOS Signing Certificate Name" --build-stack="macOS - 2024.10 - Apple silicon"
appflow build ios simulator --app-id=a1234bc --commit=a9eb85e --app-file-name=my_custom_file_name.app  --webhook-url="https://webhook.com/test"
Flags
| Name | Type | Default | Description | 
|---|---|---|---|
| --app-id[required] | string | Appflow app id | |
| --app-bundle-id | string | Native config application bundle ID. Example: com.company.app | |
| --app-file | boolean | false | Download app file (simulator builds only) | 
| --app-file-name | string | Download app and rename file (simulator builds only). Example: myapp.app | |
| --app-name | string | Native config application name | |
| --build-stack | string | Target platform ("macOS - 2024.04 - Apple silicon" / "macOS - 2024.10 - Apple silicon" / "macOS - 2023.10 - Apple silicon" / "macOS - 2023.09 - Apple silicon" / "macOS - 2023.06 - Apple silicon"), defaults to latest stack | |
| --commit | string | Commit sha | |
| --dependency-caching | boolean | false | Enabled NPM caching | 
| --detached | boolean | false | Asynchronously run appflow build | 
| --dsym | boolean | false | Download dsym zip file | 
| --dsym-name | string | Download dsym zip and rename file. Example: myapp.dsym.zip | |
| --env | string[] | [] | Variables to expose to your build. Variables defined this way override those loaded using the env-fileflag. Example: --env VAR=value | 
| --env-file | string[] | [] | Files declaring environment variables to expose to your build. Variables from later files overwrite variables from earlier files. | 
| --environment | string | The name of the predefined Appflow Environment to expose to your build | |
| --ipa | boolean | false | Download ipa file | 
| --ipa-name | string | Download ipa and rename file. Example: myapp.ipa | |
| --live-update-app-id | string | Appflow application ID | |
| --live-update-channel-name | string | Live Update channel name | |
| --live-update-disable-deploy | boolean | false | Disable Live Updates from being applied | 
| --live-update-max-store | number | 2 | Number of previous Live Updates that can be stored on a device | 
| --live-update-method | string | "background" | Live Update method to determine how the app will check for and apply updates, "background", "auto", or "none" | 
| --live-update-min-background-duration | number | 30 | Number of seconds the app needs to be in the background for it to have been considered "closed" | 
| --native-app-preview | boolean | false | Enable app preview directly in the browser via a secure public URL with Appetize (only compatible with simulator builds) | 
| --native-config | string | The name of the native config to use for the build. Native configs are defined in the UI. | |
| --secret | string[] | [] | Secrets to expose to your build. Example: --secret VAR=value | 
| --signing-cert | string | Signing certificate (not required for simulator builds) | |
| --webhook-url | string | Schedules a webhook that executes after the build finishes. The payload will include a URL for downloading build artifacts if the build succeeds. | |
| --xcarchive | boolean | false | Download xcarchive zip file | 
| --xcarchive-name | string | Download xcarchive zip and rename file. Example: myapp.xcarchive.zip | 
Global Flags
| Name | Type | Default | Description | 
|---|---|---|---|
| -h, --help | boolean | false | Print help information for command | 
| --config | string | Appflow config file ( .appflow.yamlby default) | |
| --json | boolean | false | For commands with output, shortcut to print as JSON | 
| --output | string | "text" | For commands with output, print as [json] or human readable [text] | 
| --token | string | Ionic authorization token | 
Outputs
| Name | Type | Description | 
|---|---|---|
| appId | string | Your app's unique identifier in Appflow. | 
| buildId(optional) | number | A unique identifier for a build done in Appflow. | 
| buildNumber(optional) | number | An 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. | 
| commit | string | The commit hash. | 
| buildStack | object | A Build Stack in Appflow. | 
| .name | string | The friendly name for a Build Stack in Appflow. | 
| .dependencies(optional) | object[] | The list of pinned software versions for a Build Stack in Appflow. | 
| .name | string | The name of a software used by a Build Stack in Appflow. | 
| .version | string | The pinned version of a software used by a Build Stack in Appflow. | 
| environment(optional) | object | The Environment for your build in Appflow. | 
| .name | string | The 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) | boolean | Whether or not dependency caching was enabled for this build. | 
| webhooks(optional) | object[] | List of associated webhooks. | 
| .url | string | The URL of the associated webhook. | 
| .status | generated.BuildNotificationStatus | The status of the associated webhook. | 
| signingCert(optional) | string | The signing certificate used by Appflow to deploy a build to the App Stores. | 
| buildType | string | The kind of native build done by Appflow, e.g. dev or release builds. | 
| nativeConfig(optional) | object | A Native Config to manipulate your build in Appflow. | 
| .name | string | The name of a Native Config you've created in Appflow. | 
| .base(optional) | object | These Native Config variables allow you to override properties on a Native Build. | 
| .name(optional) | string | Override the home screen name for a Native Build. | 
| .bundleId(optional) | string | Override the bundle identifier for a Native Build. | 
| .liveUpdatesConfig(optional) | object | These Native Config variables allow you to override properties used by the Live Updates Plugin. | 
| .appId(optional) | string | Your app's unique identifier in Appflow. | 
| .channelName(optional) | string | The name of a channel that hosts Live Updates. | 
| .maxStore(optional) | number | The maximum number of updates for the Live Updates Plugin to store on the device. | 
| .minBackgroundDuration(optional) | number | The number of seconds the app needs to be in the background before the Live Updates Plugin considers it closed. | 
| .updateMethod(optional) | string | The update method for the Live Updates Plugin to use. | 
| .disableDeploy(optional) | boolean | Whether the Live Updates Plugin should be disabled or not. | 
| appetizeUrl(optional) | string | The URL of the Appetize preview. | 
Successful Output
{
  "appId": "052b32ac",
  "buildId": 6010455,
  "buildNumber": 25,
  "buildStatus": "SUCCESS",
  "platform": "IOS",
  "commit": "cef1sdca",
  "buildStack": {
    "name": "macOS - 2023.03",
    "dependencies": [
      {
        "name": "Cordova CLI",
        "version": "11.1.0"
      },
      {
        "name": "Ionic CLI",
        "version": "6.20.9"
      },
      {
        "name": "Node.js",
        "version": "18.15.0"
      },
      {
        "name": "Node.js versions",
        "version": "14.21.3 / 16.19.1 / 18.15.0"
      },
      {
        "name": "npm",
        "version": "8.19.4"
      },
      {
        "name": "Yarn",
        "version": "1.22.19"
      },
      {
        "name": "Python",
        "version": "3"
      },
      {
        "name": "macOS",
        "version": "12.6"
      },
      {
        "name": "Carthage",
        "version": "0.38.0"
      },
      {
        "name": "CocoaPods",
        "version": "1.12.0"
      },
      {
        "name": "Xcode",
        "version": "14.2"
      }
    ]
  },
  "environment": {
    "name": "Test Environment",
    "files": [
      ".env-file1",
      ".env-file2"
    ],
    "variables": {
      "Var1": "value1",
      "Var2": "value2"
    },
    "secrets": {
      "Sec1": "********",
      "Sec2": "********"
    }
  },
  "artifacts": {
    "IPA": "ionic-app-main-cef1sdca-development.ipa"
  },
  "dependencyCaching": null,
  "webhooks": null,
  "signingCert": "iOS Signing Certificate Name",
  "buildType": "DEVELOPMENT",
  "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": "IOS",
  "commit": "cef1sdca",
  "buildStack": {
    "name": "macOS - 2023.03",
    "dependencies": [
      {
        "name": "Cordova CLI",
        "version": "11.1.0"
      },
      {
        "name": "Ionic CLI",
        "version": "6.20.9"
      },
      {
        "name": "Node.js",
        "version": "18.15.0"
      },
      {
        "name": "Node.js versions",
        "version": "14.21.3 / 16.19.1 / 18.15.0"
      },
      {
        "name": "npm",
        "version": "8.19.4"
      },
      {
        "name": "Yarn",
        "version": "1.22.19"
      },
      {
        "name": "Python",
        "version": "3"
      },
      {
        "name": "macOS",
        "version": "12.6"
      },
      {
        "name": "Carthage",
        "version": "0.38.0"
      },
      {
        "name": "CocoaPods",
        "version": "1.12.0"
      },
      {
        "name": "Xcode",
        "version": "14.2"
      }
    ]
  },
  "environment": {
    "name": "Test Environment",
    "files": [
      ".env-file1",
      ".env-file2"
    ],
    "variables": {
      "Var1": "value1",
      "Var2": "value2"
    },
    "secrets": {
      "Sec1": "********",
      "Sec2": "********"
    }
  },
  "artifacts": {},
  "dependencyCaching": null,
  "webhooks": null,
  "signingCert": "iOS Signing Certificate Name",
  "buildType": "DEVELOPMENT",
  "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
}