appflight_cli 0.4.0
appflight_cli: ^0.4.0 copied to clipboard
AppFlight CLI — upload APKs from your terminal or CI pipelines without the Play Store.
Changelog #
0.4.0 #
- Anonymous usage analytics — the CLI now optionally collects anonymous usage data via GA4 to help improve the tool. You are prompted once on first run; CI environments are always skipped.
appflight analytics enable— opt in to analytics.appflight analytics disable— opt out at any time.appflight analytics status— show current opt-in status.
0.3.1 #
- Kotlin DSL support in
appflight upload— version resolution now checksbuild.gradle.ktsbeforebuild.gradle, and the regexes handle both Groovy (versionName "x") and Kotlin DSL (versionName = "x") syntax. Fixes React Native 0.77+ projects that usebuild.gradle.ktsby default.
0.3.0 #
- React Native bare workflow support —
appflight initnow prompts for your framework (Flutter or React Native) or accepts--project-type flutter|react-nativeto skip the prompt. React Native projects are validated againstpackage.json+android/app/build.gradle. - Framework-aware APK paths — React Native uses Gradle output paths (
android/app/build/outputs/apk/<flavor>/release/); Flutter paths are unchanged. - Automatic version from Gradle — React Native uploads read
versionName+versionCodefromandroid/app/build.gradleand combine them as1.2.0+7. Override with--versionor--build-numberas usual. - Smarter project root detection —
uploadnow walks up looking forappflight.jsoninstead ofpubspec.yaml, so it works from any subdirectory in both Flutter and React Native projects. - Conditional build hints — the "APK not found" error now shows the correct build command for your framework (
flutter build apkvs./gradlew assemble...). - All existing Flutter behaviour is fully backward-compatible —
projectTypedefaults toflutterand no changes to existingappflight.jsonfiles are required.
0.2.1 #
- Two-segment package names now allowed in
appflight init— the validator previously required at least 3 dot-separated segments (e.g.com.mycompany.myapp). Names likedev.mhmzare now accepted, matching the AppFlight mobile app and backend.
0.2.0 #
- Rollover uploads — First Class (pro) uploads at the APK cap now auto-drop the oldest build instead of blocking. When a rollover happens, the CLI prints
Rolled over oldest build (vX.Y.Z) to stay at your plan cap. - Higher pro APK caps — Individual First Class: 10 → 15; Organization First Class: 15 → 20.
- Free-tier TTL shortened to 7 days (was 14). First Class keeps 14 days.
- Economy (free) uploads at cap still exit
8with the existingPLAN_LIMITmessage.
0.1.7 #
- Default environment is now
prod(wasstage). Pasted keys from the AppFlight mobile app now work out of the box without anyAPPFLIGHT_ENVoverride.stageandlocalremain available viaAPPFLIGHT_ENV/--envfor contributors hacking on the CLI or Cloud Functions.
0.1.6 #
- Fix
appflight --versioncrashing withPathNotFoundException— version is now read from an embedded Dart constant instead ofpubspec.yaml(which is not shipped to~/.pub-cache/global_packages/).
0.1.5 #
- Added Paywall guard in cli operations
0.1.4 #
Patch Changes #
- 6e5e541: Fix release pipeline: use PAT for tag push to correctly trigger pub.dev publish
0.1.3 #
Patch Changes #
- 0445a81: Update README to reflect simplified release flow and add issues link
0.1.2 #
Patch Changes #
- 4ec9d2d: Updated docs for pub.dev scoring; added MIT license, example, and unit tests.
- fecf708: bump versioning with docs and pub.dev scores
0.1.1 #
--versionand--docsflags
0.1.0 #
- Initial release
init— scaffoldappflight.jsonin a Flutter projectlogin— authenticate with an AppFlight API keylogout— remove saved credentialswhoami— display the authenticated userupload— upload an APK and notify testers automatically