๐ Share My APK
The Ultimate Flutter APK Build & Upload Automation Tool
Stop the build-and-drag-drop dance! ๐ Your mouse deserves a break.
From code to shareable link in one command โก
Automate your Flutter Android APK builds and uploads with the power of magic (and some really good code)
๐ฏ Why Share My APK?
๐ฉ Before Share My APK
|
๐ After Share My APK
|
โจ What Makes It Special?
| ๐ Feature | ๐ฏ Benefit | ๐ฅ Why It Matters |
|---|---|---|
| ๐ One-Command Magic | share_my_apk does it all |
Save hours of manual work |
| ๐ง Comprehensive Pipeline | Clean, deps, l10n, build | Enterprise-grade reliability |
| โ๏ธ Multi-Provider Support | Diawi + Gofile.io | Never worry about size limits |
| ๐ Smart Auto-Switching | Diawi โ Gofile for 70MB+ files | Zero upload failures |
| ๐ Smart Configuration | YAML-based setup | Set once, use forever |
| ๐ก๏ธ Reliable & Tested | Production-ready | Works every time |
| ๐จ Flexible Organization | Custom naming & folders | Keep your builds organized |
๐ Usage
See the Quick Start and Usage Examples sections below for detailed instructions.
โฌ๏ธ Installation
Refer to the Installation Options section for how to install share_my_apk.
๐ก Examples
Check out the Usage Examples section for various ways to use this tool.
๐ What's New in v0.5.0?
๐ Fully Automated & Comprehensive Build Pipeline!
โจ Key Improvements
โ
Comprehensive Build Pipeline - Automatic FVM detection, flutter clean, pub get, and localization generation
โ
Fully Automated Uploads - Removed confirmation dialog for streamlined CI/CD workflows
โ
Enhanced Reliability - Professional-grade build process with step-by-step logging
โ
Enterprise-Ready - Perfect for production environments and automated deployments
๐ Click to see the new logs in action!
[32mโน๏ธ [12:55:55] ๐ Starting comprehensive APK build (mode: release)... [0m
[32mโน๏ธ [12:55:55] Using Flutter command: fvm flutter [0m
[32mโน๏ธ [12:55:55] ๐งน [1/4] Cleaning project... [0m
[32mโน๏ธ [12:55:58] ๐ฆ [2/4] Getting dependencies... [0m
[32mโน๏ธ [12:56:02] ๐ [3/4] Generating localizations... [0m
[32mโน๏ธ [12:56:04] ๐จ [4/4] Building APK (release mode)... [0m
[36mโจ [12:56:15] Build output: โ Built build/app/outputs/flutter-apk/app-release.apk (55.1MB) [0m
[32mโน๏ธ [12:56:15] โ
APK built successfully: ./build/app/outputs/flutter-apk/app-release.apk [0m
[32mโน๏ธ [12:56:15] Uploading APK... [0m
[32mโน๏ธ [12:56:15] File: ./moonnote_1.0.1+a2_2025_07_09_12_55_55.apk [0m
[32mโน๏ธ [12:56:15] Size: 55.10 MB [0m
[32mโน๏ธ [12:56:15] Provider: diawi [0m
[32mโน๏ธ [12:56:25] Upload successful: https://i.diawi.com/SzSiZc [0m
[32mโโโโโโโโโโโโโโโโโโโโโโโ [0m
[32mโ APK successfully uploaded to diawi! โ [0m
[32mโ Download link: https://i.diawi.com/SzSiZc โ [0m
[32mโโโโโโโโโโโโโโโโโโโโโโโ [0m
โก Quick Start
1๏ธโฃ Install
dart pub global activate share_my_apk
2๏ธโฃ Configure
share_my_apk --init
3๏ธโฃ Build & Upload
share_my_apk
4๏ธโฃ Share
Get instant download link! ๐
Installation Options
๐ Global Installation
Perfect for CLI usage across all projects |
๐ฆ Project Dependency
Perfect for team projects and CI/CD pipelines |
๐ฎ Usage Examples
๐ง Basic Usage
# Initialize configuration (one-time setup)
share_my_apk --init
# Build and upload with default settings
share_my_apk
# Use specific provider
share_my_apk --provider gofile
# Custom naming and environment
share_my_apk --name MyApp_Beta --environment staging
# Debug build
share_my_apk --no-release
# Skip build pipeline steps (for faster builds)
share_my_apk --no-clean --no-pub-get
โ๏ธ Advanced Configuration
Create share_my_apk.yaml in your project root:
# Provider settings
provider: diawi
# API tokens
diawi_token: your_diawi_token_here
gofile_token: your_gofile_token_here
# Build settings
release: true
path: .
# Build pipeline controls
clean: true # Run flutter clean
pub-get: true # Run flutter pub get
gen-l10n: true # Generate localizations
# File organization
name: MyApp_Production
environment: prod
output-dir: build/releases
๐ฌ Library Usage
import 'package:share_my_apk/share_my_apk.dart';
void main() async {
// Build APK with comprehensive pipeline
final buildService = FlutterBuildService();
final apkPath = await buildService.build(
release: true,
customName: 'MyApp_Beta',
environment: 'staging',
clean: true, // Run flutter clean
getPubDeps: true, // Run flutter pub get
generateL10n: true, // Generate localizations
);
// Upload to cloud
final uploader = UploadServiceFactory.create('gofile');
final downloadLink = await uploader.upload(apkPath);
print('๐ Download link: $downloadLink');
}
๐ฏ Command Reference
| Command | Alias | Description | Example |
|---|---|---|---|
--help |
-h |
Show help message | share_my_apk --help |
--init |
- | Generate config file | share_my_apk --init |
--path |
-p |
Project path | share_my_apk -p /my/project |
--provider |
- | Upload provider | share_my_apk --provider gofile |
--name |
-n |
Custom APK name | share_my_apk -n MyApp_Beta |
--environment |
-e |
Environment folder | share_my_apk -e staging |
--output-dir |
-o |
Output directory | share_my_apk -o build/apks |
--diawi-token |
- | Diawi API token | share_my_apk --diawi-token abc123 |
--gofile-token |
- | Gofile API token | share_my_apk --gofile-token xyz789 |
--release |
- | Release build (default) | share_my_apk --release |
--no-release |
- | Debug build | share_my_apk --no-release |
--clean |
- | Run flutter clean (default) | share_my_apk --clean |
--no-clean |
- | Skip flutter clean | share_my_apk --no-clean |
--pub-get |
- | Run flutter pub get (default) | share_my_apk --pub-get |
--no-pub-get |
- | Skip flutter pub get | share_my_apk --no-pub-get |
--gen-l10n |
- | Generate localizations (default) | share_my_apk --gen-l10n |
--no-gen-l10n |
- | Skip localization generation | share_my_apk --no-gen-l10n |
๐ก Pro Tip: Share My APK automatically switches from Diawi to Gofile for files >70MB!
๐ Fully Automated Workflow
Share My APK now provides a completely automated experience, perfect for CI/CD pipelines and production workflows.
๐งน [1/4] Cleaning project...
๐ฆ [2/4] Getting dependencies...
๐ [3/4] Generating localizations...
๐จ [4/4] Building APK (release mode)...
โน๏ธ [12:56:05] Uploading APK...
โน๏ธ [12:56:05] File: /path/to/your/app.apk
โน๏ธ [12:56:05] Size: 55.10 MB
โน๏ธ [12:56:05] Provider: diawi
๐ก๏ธ Reliability & Quality
Share My APK is production-ready and thoroughly tested to ensure it works reliably in real-world scenarios.
โ What We've Tested
- โ Large File Uploads - Successfully tested with 113MB+ APKs
- โ Network Resilience - Handles connection issues gracefully
- โ Provider Switching - Automatic fallback works seamlessly
- โ Build Pipeline - Comprehensive testing with FVM, clean builds, dependencies
- โ Edge Cases - Handles special characters, long paths, and more
- โ Cross-Platform - Works on Windows, macOS, and Linux
- โ CI/CD Ready - Fully automated for production deployments
Ready for your production workflow! ๐
๐ File Organization Magic
Share My APK keeps your builds organized with smart naming:
output-directory/
โโโ environment/ # Optional environment folder
โ โโโ MyApp_1.0.0_2025_07_09_14_30_45.apk
โ โโโ MyApp_1.0.1_2025_07_09_15_15_30.apk
โ โโโ ...
โโโ staging/
โ โโโ MyApp_Beta_1.0.0_2025_07_09_12_00_00.apk
โ โโโ ...
โโโ prod/
โโโ MyApp_Production_1.0.0_2025_07_09_16_45_30.apk
โโโ ...
Naming Pattern: {name}_{version}_{timestamp}.apk
๐ Need More Info?
| ๐ Resource | ๐ฏ What's Inside |
|---|---|
| Release Notes | What's new and version history |
| Changelog | Detailed version changes |
๐ Ready to Get Started?
dart pub global activate share_my_apk
share_my_apk --init
share_my_apk
That's it! You're now sharing APKs like a pro! ๐ฏ
๐ฌ Need Help?
- ๐ Read the docs
- ๐ Report issues
- ๐ก Request features
- โญ Star on GitHub
Libraries
- A library to build and upload Flutter Android APKs.