share_my_apk 1.1.3-beta
share_my_apk: ^1.1.3-beta copied to clipboard
CLI tool for building and uploading Android APKs.
๐ฏ 1.1.3-beta - The "Interactive Mode" Release #
๐จ Interactive Provider Selection & Firebase Wizard
- ๐ฏ Interactive Mode: Added interactive provider selection that prompts users to choose how they want to distribute their APK
- Choose between Diawi, Gofile, Firebase App Distribution, or skip upload
- Smart detection: automatically skips prompts if provider is already configured
- User-friendly descriptions for each provider option
- ๐ฅ Firebase Configuration Wizard: Complete interactive setup for Firebase App Distribution
- Prompts for Project ID, App ID, service account path
- Interactive collection of release notes, testers, and groups
- Option to save configuration for future use
- โ๏ธ CLI Integration: New
--interactive/-iflag (enabled by default)--no-interactivefor non-interactive/CI-CD mode- Maintains backward compatibility with existing workflows
- ๐ YAML Configuration: Added
interactive: true/falseoption to configuration files - ๐ ๏ธ Utility Creation: New
prompt_util.dartwith reusable interactive prompt utilitiesaskYesNo()- Yes/no questions with defaultsaskChoice()- Multiple choice selectionaskText()- Validated text inputpromptForFirebaseConfig()- Full Firebase setup wizard
- ๐ Documentation Updates: Comprehensive documentation for interactive mode in README and walkthrough
Usage Examples:
share_my_apk # Interactive mode (shows prompts if not configured)
share_my_apk --no-interactive # Skip all prompts, use config only
share_my_apk --provider firebase # Use Firebase with existing config
First-Time User Experience:
๐ค How would you like to distribute your APK?
โ 1. Diawi - Quick team sharing (70MB limit, 30-day expiry)
2. Gofile - Large files (no size limit, permanent links)
3. Firebase App Distribution - Enterprise distribution
4. Skip upload - Just build the APK
Select option (1-4) [1]:
๐ต 1.1.0-beta - The "Sound Notification" Release #
๐ Cross-Platform Sound Notifications
- ๐ต Sound Notifications: Added cross-platform sound notification feature that plays a beep/notification sound after successful APK upload (enabled by default).
- ๐ Universal Compatibility: Works on Windows, Linux, and macOS with multiple fallback mechanisms for maximum reliability.
- โ๏ธ Multiple Implementation Strategies:
- Primary: ASCII bell character (
\x07) for terminal beep - Windows:
rundll32system beep + PowerShell fallback - Linux:
pactl+beep+speaker-testfallbacks - macOS:
afplaysystem sound +osascriptfallback
- Primary: ASCII bell character (
- ๐๏ธ CLI Integration: New
--sound/-sflag for enabling sound notifications - ๐ YAML Configuration: Added
sound: true/falseoption to configuration files - ๐งช Comprehensive Testing: Added unit tests and example for sound notification functionality
- ๐ Graceful Degradation: Fails silently if sound cannot be played without breaking main workflow
Usage Examples:
share_my_apk # Sound enabled by default
share_my_apk --no-sound # Disable sound notification
YAML Configuration:
sound: false # Disable sound (enabled by default)
provider: gofile
๐ 1.0.0 - The "Production Ready" Release #
๐ First Stable Production Release
- โ Production Ready: Upgraded from beta to stable 1.0.0 release after comprehensive testing and validation.
- ๐งน Code Cleanup: Removed unused imports and resolved all static analysis warnings.
- ๐ฆ Package Validation: Passed all pub.dev validation checks for production publishing.
- ๐ Quality Assurance: Comprehensive audit completed with 100+ tests passing and zero issues.
- ๐ Documentation Complete: All documentation updated for production release status.
- ๐ Configuration Fix: Removed hardcoded 'diawi' default that was overriding YAML configuration priority.
๐ 1.0.1 - The "Maintenance & Polish" Release #
โจ Minor Improvements & Quality Assurance
- โฌ๏ธ Version Bump: Updated package version to
1.0.1inpubspec.yaml. - ๐ Documentation Refinement: Improved
README.mdstructure and content for better clarity andpub.devcompliance. - โ Quality Checks: Confirmed all unit tests pass and static analysis shows no issues.
- ๐ฆ Package Validation: Ensured package passes
pub.devvalidation checks.
๐ 0.5.0 - The "Fully Automated & Comprehensive" Release #
โจ Major UI/UX & Automation Improvements
-
๐ Fully Automated Uploads:
- Removed pre-upload confirmation dialog for streamlined, non-interactive operation.
- Tool now proceeds directly to upload after build completion.
- Perfect for CI/CD pipelines and automated workflows.
-
๐ง Comprehensive Build Pipeline:
- Added automatic FVM detection - uses
fvm flutterif.fvmdirectory exists. - Integrated
flutter cleanbefore builds for fresh, reliable builds. - Added automatic
flutter pub getto ensure dependencies are up-to-date. - Implemented automatic localization generation (
flutter gen-l10n) whenlib/l10nexists. - New CLI flags:
--no-clean,--no-pub-get,--no-gen-l10nto disable individual steps.
- Added automatic FVM detection - uses
-
๐จ Colorful & Fun Logs:
- Added emojis and colors to log messages for a more engaging experience.
- Assigned specific emojis and colors to each log level for better structure.
- Re-introduced timestamps in a friendly format.
- Improved layout with indentation and spacing for readability.
- Created a special, highlighted box for the final success message.
-
๐ง Bug Fixes & Configuration Improvements:
- Fixed a critical bug where the
providerfromshare_my_apk.yamlwas ignored. - Corrected the Diawi upload success status code to prevent timeouts.
- Fixed a critical bug where the
-
๐ฆ Dependency Updates:
- Added the
intlpackage for date formatting.
- Added the
๐ 0.4.0-beta - The "Rock-Solid & Ready" Release #
๐ฏ Major API Integration Fixes & Comprehensive Testing
-
๐ง Fixed Gofile API Integration:
- Corrected server endpoint to
https://api.gofile.io/servers - Fixed upload endpoint to use proper
/contents/uploadfilepath - Improved response parsing for download links
- Now successfully handles large files (tested with 113.4MB APKs)
- Corrected server endpoint to
-
๐ง Enhanced Diawi API Integration:
- Implemented proper asynchronous job polling mechanism
- Added timeout handling (30 attempts with 5-second intervals)
- Improved status checking with proper error handling
- Fixed response parsing for final download links
-
๐งช Comprehensive Testing Suite:
- Added 100+ unit tests covering all major components
- Created 6 test categories: Upload services, build services, CLI, error handling, integration
- 19 test files ensuring reliability and preventing regressions
- Added
TESTING.mdwith complete testing documentation
-
๐ก๏ธ Enhanced Error Handling:
- Improved upload service factory with better validation
- Added case-insensitive provider matching
- Enhanced error messages for better debugging
- Robust handling of null/empty inputs and edge cases
-
โ Production-Ready Validation:
- Successfully tested real uploads to both Diawi and Gofile
- Verified automatic provider switching for large files
- Validated configuration loading and CLI argument parsing
- All code passes static analysis (
dart analyze)
-
๐ Updated Documentation:
- Comprehensive testing documentation
- Updated API integration details
- Enhanced troubleshooting guide
- Better error handling examples
โ ๏ธ Beta Release Note: This version includes significant API fixes and comprehensive testing. While thoroughly tested in development, we recommend testing in your specific environment before production use.
๐ 0.3.2 - The "Polished & Perfected" Release #
- โจ Improved Readability: We've polished the code to make it cleaner and more consistent. You won't see the changes, but you'll feel the love.
- ๐ Better Documentation: Added more details to our project documentation, making it easier for everyone to contribute.
๐ 0.3.1 - The "Oops, We Fixed It" Release #
- ๐ Bug Fix: Fixed a critical issue that could cause the build process to fail. Now, it's smooth sailing!
- โฌ๏ธ Under the Hood: Updated our dependencies to the latest versions for better performance and security.
- ๐ Clearer Instructions: We've added more detailed comments to the code to make it easier to understand.
๐ 0.3.0 - The "Let's Get Serious (About Fun)" Release #
- โจ Major Refactor: We've completely reorganized the codebase to make it more robust and easier to maintain.
- โฌ๏ธ Fresher Than Ever: All our dependencies have been updated to the latest versions.
- ๐ Fun New Docs: Our
README.mdis now more engaging and easier to read. - ๐ก Clearer Examples: Our examples are now so simple that anyone can follow along.
๐ 0.2.0-alpha - The "We're Getting Fancy" Release #
- ๐ Quick Start: You can now use the
initcommand to create a configuration file automatically. - ๐จ Better Help: The
--helpcommand has been redesigned to be more intuitive and helpful. - โ๏ธ Easy Configuration: We now support a
share_my_apk.yamlfile, so you can set your preferences once and forget about it. - ๐ Separate Tokens: You can now use different API tokens for Diawi and Gofile.
- ๐ Bug Fix: Fixed a bug that was causing issues with API tokens.
๐ฃ 0.1.0-alpha - The "Hello, World!" Release #
- โ๏ธ More Choices: You can now upload your APKs to either Diawi or Gofile.io.
- ๐ Smart Uploads: If your APK is too large for Diawi, we'll automatically switch to Gofile.io.
- ๐จ Custom Names: You can now give your APK a custom name.
- ๐ Tidy Folders: We've made it easier to keep your build folders organized.
- ๐ You're in Control: You can now specify a custom output directory for your APK.
- ๐ชต Stay Informed: We've added logging so you can see what's happening behind the scenes.