Skip to main content

uploader 1.0.0 copy "uploader: ^1.0.0" to clipboard
uploader: ^1.0.0 copied to clipboard

This package is used for creating AAB/APK and IPA files, and sending them to Play Console, TestFlight, and Firebase App Distribution

Uploader #

Pub Package

This package is used for creating AAB/APK and IPA files, and sending them to Play Console, TestFlight, and Firebase App Distribution

Installation #

IOS #

  • Create a JSON file with issuer_id and auth_key, and provide the path of the JSON file to the Uploader's testFlightConfig->path parameter.
  • issuer_id can be obtained in Users and Access under App Store Connect.
  • For auth_key, create a new Developer Key in the same section as issuer_id. The id value of this key can be used as the auth_key. Download the created key file and place it in the ~/private_keys/ directory on the computer where the package will be called.

[instruction]

ANDROID #

FIREBASE APP DISTRIBUTION #

  • Install Firebase CLI (https://firebase.google.com/docs/cli?hl=tr).
  • Activate App Distribution on Firebase .
  • Under Settings in Firebase , integrate with Google Play in the Integrations tab. If the app has not been published yet, this integration cannot be done, and in this case, Uploader 's androidBuildType parameter should be set to apk .

Usage #

dev_dependencies:
  uploader: any
dart run uploader              # asks for confirmation before it starts
dart run uploader --yes        # no prompt, for CI
dart run uploader --dry-run    # prints every command without running any
dart run uploader --help

The process exits with a non-zero status when anything fails, so it can be used as a CI step directly.

Configuration #

uploader:
  platform: all # ios, android, all
  uploadType: all # appDistribution, store, all
  testFlightConfig:
    path: ios_deploy_config.json # must include auth_key and issuer_id
  playStoreConfig:
    path: android_deploy_config.json # must include client_email, client_id, private_key
    track: internal # internal, alpha, beta
    releaseStatus: completed # completed, draft. default: completed
    skslPath: null
  appDistributionConfig:
    androidBuildType: abb # abb, apk
    androidTesters:
      path: android/testers.txt
    iosTesters:
      url: https://testers.txt
    androidGroups: # Firebase App Distribution group aliases
      - qa
    iosGroups:
      - qa
    releaseNotesPath: release_notes.txt
  useParallelUpload: true # default: true
  uploadRetryCount: 2 # extra attempts per upload step. default: 2
  enableLogFileCreation: false # default: false
  extraBuildParameters: null

Build parameters #

extraBuildParameters is appended to every flutter build the run performs. Two optional lists narrow that down to a single target:

uploader:
  extraBuildParameters: # every build
    - --no-tree-shake-icons
  appDistributionExtraBuildParameters: # App Distribution builds only
    - --dart-define=APP_CHANNEL=staging
  storeExtraBuildParameters: [] # store builds only

A build receives the common list followed by its own target's list. Writing none of these keys behaves exactly as before.

This works because a run builds each target separately, so the two never share an artifact:

App Distribution build Store build
iOS flutter build ipa --export-method=ad-hoc flutter build ipa --export-method=app-store
Android, androidBuildType: apk flutter build apk flutter build appbundle
Android, androidBuildType: abb flutter build appbundle flutter build appbundle

With uploadType: all in abb mode that means two app bundles are produced. The cost is one extra build; the gain is that a diagnostic --dart-define meant for testers never reaches the binary that goes to the store.

The confirmation screen prints the resolved list for each target before anything is built, so a flag written to the wrong list is visible up front.

Production releases are deliberately out of scope: the tool publishes to the test tracks and the production rollout stays a Play Console decision.

Only platform and uploadType are required. Every other key falls back to the default shown above.

Collaborators #

5
likes
0
points
544
downloads

Publisher

unverified uploader

Weekly Downloads

This package is used for creating AAB/APK and IPA files, and sending them to Play Console, TestFlight, and Firebase App Distribution

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

ansicolor, args, collection, dio, googleapis, googleapis_auth, yaml

More

Packages that depend on uploader