init

Creates appflight.json in your project root. Run once per project.

Creates appflight.json in your project root. Run once per project.

appflight init [--project-type <framework>] [--flavors <definitions>] [--force]

Flags

FlagDescription
--project-typeflutter or react-native. Skips the interactive framework prompt.
--flavorsComma-separated flavor definitions in name:packageName format
--force, -fOverwrite an existing appflight.json

Flavored app

appflight init --flavors stage:com.myapp.stage,qa:com.myapp.qa,prod:com.myapp

Each entry is flavorName:packageName. The flavor name becomes the key in appflight.json and maps to the APK filename (e.g. app-stage-release.apk).

No-flavor app

appflight init

Prompts for framework choice, then a single package name (applicationId).

Output

{
  "version": 1,
  "projectType": "flutter",
  "apps": {
    "stage": {
      "appflightAppId": "com.myapp.stage",
      "packageName": "com.myapp.stage",
      "apkPath": "build/app/outputs/flutter-apk/app-stage-release.apk"
    },
    "prod": {
      "appflightAppId": "com.myapp",
      "packageName": "com.myapp",
      "apkPath": "build/app/outputs/flutter-apk/app-prod-release.apk"
    }
  },
  "defaultFlavor": "stage"
}

Commit appflight.json — it's team-shared config.

Package name validation

  • Must be lowercase, dot-separated, at least 2 segments (e.g. com.myapp or com.mycompany.myapp)
  • com.example.app is not allowed
  • Each flavor must have a unique package name

Note: To re-run on an existing project: appflight init --flavors ... --force