Skip to content

Distribute Options

Example

yaml
variables:
  PGYER_API_KEY: 'your api key'
output: dist/
releases:
  - name: dev
    jobs:
      # Build and publish your apk pkg to pgyer
      - name: release-dev-android
        package:
          platform: android
          target: apk
          build_args:
            flavor: dev
            target-platform: android-arm,android-arm64
            dart-define:
              APP_ENV: dev
        publish_to: pgyer
      # Build and publish your ipa pkg to pgyer
      - name: release-dev-ios
        package:
          platform: ios
          target: ipa
          build_args:
            flavor: dev
            export-options-plist: ios/dev_ExportOptions.plist
            dart-define:
              APP_ENV: dev
        publish_to: pgyer
      # Build apk and specify parameters (optional) to publish to pgyer
      # Params reference: https://www.pgyer.com/doc/view/api#fastUploadApp
      - name: release-staging-android
        package:
          platform: android
          target: apk
          build_args:
            flavor: dev
            target-platform: android-arm,android-arm64
            dart-define:
              APP_ENV: dev
        publish:
          target: pgyer
          args:
            pgyer-oversea: 1
            pgyer-install-type: 2
            pgyer-password: 123456
            pgyer-description: Your app description
            pgyer-update-description: Update description
            pgyer-install-date: 1
            pgyer-install-start-date: 2025-09-30
            pgyer-install-end-date: 2025-10-30
            pgyer-channel-shortcut: XXXXXX

Specification

Field NameTypeDescription
envmapenvironment variables.
outputstringe.g. dist/
releases--

Hooks

Package hooks allow you to run shell commands before and after the packaging step of a job.

Example

yaml
releases:
  - name: dev
    jobs:
      - name: android-apk
        package:
          platform: android
          target: apk
          hooks:
            pre: echo "Starting packaging..."
            post:
              - echo "Packaging complete!"
              - ls -la dist/

Specification

Hooks are defined under package.hooks in a job. The value of each hook can be:

TypeExample
stringpre: echo "before"
listpost: [echo "step 1", echo "step 2"]
HookDescriptionFail on error
preRuns before packaging starts✅ Yes
postRuns after packaging completes✅ Yes

Note: If a hook command exits with a non-zero exit code, the packaging process is aborted.

Environment variables

The following environment variables are available in hook commands:

VariableDescription
PLATFORMPlatform name, e.g. android, ios, macos
PACKAGE_FORMATPackage format, e.g. apk, ipa, dmg
BUILD_MODEBuild mode, e.g. release, profile
OUTPUT_DIRECTORYOutput directory path
BUILD_OUTPUT_DIRECTORYFlutter build output directory path
BUILD_OUTPUT_FILESColon-separated list of build output file paths

Released under the MIT License.