flutter_distribute_manager 1.1.1 copy "flutter_distribute_manager: ^1.1.1" to clipboard
flutter_distribute_manager: ^1.1.1 copied to clipboard

Ship Flutter apps to QA in one command. Builds Android APK and iOS IPA, then uploads to Google Drive (via rclone) and Diawi with shareable install links. CI/CD ready.

example/flutter_distribute_manager_example.dart

// Demonstrates the reusable building blocks exported by
// flutter_distribute_manager. The CLI (`flutter_distribute_manager`) wires
// these together, but you can embed them in your own release tooling.
//
// Run with: dart run example/flutter_distribute_manager_example.dart
//
// ignore_for_file: avoid_print
import 'dart:io';

import 'package:flutter_distribute_manager/flutter_distribute_manager.dart';

void main() {
  // 1. Detect the Flutter project in the current directory (if any).
  final project = FlutterProject.detect(Directory.current.path);
  print(project == null
      ? 'No Flutter project in ${Directory.current.path}'
      : 'Detected ${project.name} v${project.version}');

  // 2. Parse CLI-style values into typed models.
  final target = BuildTarget.parse('both');
  final env = ReleaseEnvironment.parse('uat');
  print('Target: ${target.label}, environment: ${env.tag}');

  // 3. Compose a timestamped, environment-tagged artifact name.
  final fileName = timestampedFileName(
    appName: 'MyApp',
    envTag: env.tag,
    now: DateTime(2026, 6, 19, 9, 30),
    extension: 'apk',
    suffix: 'arm64-v8a',
  );
  print('Artifact name: $fileName');

  // 4. Render rclone progress into a branded bar.
  final progress = RcloneProgress.tryParse(
    'Transferred:   \t 42 MiB / 66 MiB, 64%, 4.2 MiB/s, ETA 6s',
  );
  print(progress?.renderBar());

  // 5. Build a structured result and print a notification payload + JSON.
  final result = BuildResult(
    app: 'MyApp',
    version: '1.4.2',
    environment: env.tag,
    platform: target.id,
    artifacts: [
      ArtifactResult(
        name: fileName,
        platform: 'android',
        sizeBytes: 24 * 1024 * 1024,
        path: 'build/distribute/$fileName',
        abi: 'arm64-v8a',
      ),
    ],
    links: [
      DistributionLink(
        service: 'Drive',
        artifact: fileName,
        url: 'https://drive.google.com/file/d/EXAMPLE/view',
      ),
    ],
    timingsMs: const {'androidBuild': 182000, 'driveUpload': 9400},
  );
  print(NotificationClient.buildMessage(result));

  // 6. Render a summary table.
  final table = ConsoleTable(['Artifact', 'Platform', 'Size'])
    ..addRow([fileName, 'android', humanSize(24 * 1024 * 1024)]);
  print(table.render());
}
3
likes
160
points
42
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Ship Flutter apps to QA in one command. Builds Android APK and iOS IPA, then uploads to Google Drive (via rclone) and Diawi with shareable install links. CI/CD ready.

Repository (GitHub)
View/report issues

Topics

#cli #flutter #release #distribution #automation

License

MIT (license)

Dependencies

args, http, path

More

Packages that depend on flutter_distribute_manager