π¦ APK Publishing to GitHub - Complete Setup Summary
β Whatβs Been Set Up
Your Airo Super App is now fully configured to publish APKs (and other platform builds) to GitHub Releases for public download!
π― How It Works
Automated Release Pipeline
Developer GitHub Actions Users
| | |
| 1. Push tag (v1.0.0) | |
|------------------------->| |
| | |
| | 2. Build all platforms|
| | - Android APK |
| | - Android AAB |
| | - iOS IPA |
| | - Web ZIP |
| | - Windows ZIP |
| | - Linux TAR.GZ |
| | |
| | 3. Create Release |
| | - Upload artifacts |
| | - Generate notes |
| | - Publish |
| | |
| |---------------------->| 4. Download APK
| | | Install & Use
π Files Created/Updated
Documentation
- β
docs/release/GITHUB_APK_PUBLISHING_GUIDE.md- Complete guide for publishing APKs
- User installation instructions
- Troubleshooting tips
- Advanced configuration
- β
docs/release/QUICK_RELEASE_GUIDE.md- Quick reference card
- One-command release
- Common commands
- Best practices
- β
docs/release/PUBLISHING_SUMMARY.md(this file)- Overview of setup
- Quick start guide
- Links to resources
Scripts
- β
scripts/release.sh- Automated release script
- Version bumping
- Pre-release checks
- Tag creation and pushing
Configuration (Already Exists)
- β
.github/workflows/build-and-release.yml- Builds all platforms
- Creates GitHub Release
- Uploads artifacts
- β
.github/workflows/ci.yml- Runs tests on every push
- Builds debug APK
- Security scanning
README
- β
README.md(Updated)- Download badges
- Direct download links
- Release information
π Quick Start: Publishing Your First Release
Option 1: Automated Script (Recommended)
# Make script executable (first time only)
chmod +x scripts/release.sh
# Create and publish release
./scripts/release.sh 1.0.0
The script will:
- β
Update version in
pubspec.yaml - β Run tests and analysis
- β
Create/edit
RELEASE_NOTES.md - β Commit changes
- β Create and push tag
- β Trigger GitHub Actions build
Option 2: Manual (3 Commands)
# 1. Commit your changes
git add .
git commit -m "Release v1.0.0"
git push
# 2. Create and push tag
git tag -a v1.0.0 -m "Release v1.0.0 - Initial public release"
git push origin v1.0.0
# 3. Wait for GitHub Actions (~15 min)
# APK will be at: https://github.com/DevelopersCoffee/airo/releases/tag/v1.0.0
π One-Time Setup Required
GitHub Secret: GOOGLE_SERVICES_JSON
You need to set this up once before your first release.
Step 1: Encode the File
# On Linux/Mac:
base64 -w 0 app/android/app/google-services.json
# On Windows (PowerShell):
[Convert]::ToBase64String([IO.File]::ReadAllBytes("app\android\app\google-services.json"))
Step 2: Add to GitHub
- Go to: https://github.com/DevelopersCoffee/airo/settings/secrets/actions
- Click βNew repository secretβ
- Name:
GOOGLE_SERVICES_JSON - Value: Paste the base64 output
- Click βAdd secretβ
Thatβs it! You only need to do this once.
π± Download Links for Users
Once you publish a release, users can download from:
Latest Release Page
https://github.com/DevelopersCoffee/airo/releases/latest
Direct APK Download
https://github.com/DevelopersCoffee/airo/releases/latest/download/app-release.apk
All Releases
https://github.com/DevelopersCoffee/airo/releases
π What Gets Built
When you push a tag, GitHub Actions automatically builds:
| Platform | File | Size | Build Time |
|---|---|---|---|
| Android APK | app-release.apk |
~50 MB | 15 min |
| Android AAB | app-release.aab |
~40 MB | 15 min |
| iOS IPA | app-release.ipa |
~100 MB | 20 min |
| Web | airo-web-release.zip |
~30 MB | 10 min |
| Windows | airo-windows-release.zip |
~80 MB | 15 min |
| Linux | airo-linux-release.tar.gz |
~60 MB | 15 min |
Total: ~360 MB, ~20 minutes (builds run in parallel)
π― Release Types
Semantic Versioning (MAJOR.MINOR.PATCH)
| Type | Example | When to Use | Command |
|---|---|---|---|
| Patch | v1.0.1 | Bug fixes | ./scripts/release.sh 1.0.1 |
| Minor | v1.1.0 | New features | ./scripts/release.sh 1.1.0 |
| Major | v2.0.0 | Breaking changes | ./scripts/release.sh 2.0.0 |
| Beta | v1.0.0-beta.1 | Testing | ./scripts/release.sh 1.0.0-beta.1 |
| Alpha | v1.0.0-alpha.1 | Early testing | ./scripts/release.sh 1.0.0-alpha.1 |
π Pre-Release Checklist
Before creating a release, ensure:
# 1. Run tests
cd app && flutter test
# 2. Check code quality
flutter analyze
# 3. Format code
dart format lib/
# 4. Build locally to verify
flutter build apk --release
# 5. Test the APK
adb install build/app/outputs/flutter-apk/app-release.apk
Or use the automated script which does all this:
./scripts/release.sh 1.0.0
π Sharing Your Release
README Badges (Already Added)
[](https://github.com/DevelopersCoffee/airo/releases/latest/download/app-release.apk)
Social Media Template
π Airo Super App v1.0.0 is now available!
π± Download for Android:
https://github.com/DevelopersCoffee/airo/releases/latest/download/app-release.apk
β¨ Features:
- AI Chat Assistant with Gemini Nano
- Chess Game with Stockfish AI
- Music Player
- Multi-platform support
#AiroApp #Flutter #AI #OpenSource
Email Template
Subject: Airo Super App v1.0.0 Released!
Hi everyone,
I'm excited to announce the release of Airo Super App v1.0.0!
Download: https://github.com/DevelopersCoffee/airo/releases/latest
What's new:
- AI-powered chat assistant
- Chess game with AI opponent
- Music player with playlist support
- Multi-platform support (Android, iOS, Web)
Installation:
1. Download app-release.apk
2. Enable "Install unknown apps" in Android settings
3. Install and enjoy!
Feedback welcome!
π Monitoring Releases
View Download Stats
- Go to: https://github.com/DevelopersCoffee/airo/releases
- Each release shows download count for each file
- Click on a release to see detailed stats
Using GitHub CLI
# Install GitHub CLI: https://cli.github.com/
# View latest release
gh release view
# List all releases
gh release list
# View specific release
gh release view v1.0.0
Using API
# Get latest release info
curl https://api.github.com/repos/DevelopersCoffee/airo/releases/latest
# Get all releases
curl https://api.github.com/repos/DevelopersCoffee/airo/releases
π¨ Troubleshooting
Build Fails
- Check GitHub Actions logs: https://github.com/DevelopersCoffee/airo/actions
- Verify
GOOGLE_SERVICES_JSONsecret is set - Ensure
pubspec.yamlhas no errors - Check Flutter version in workflow matches your local version
Tag Already Exists
# Delete local tag
git tag -d v1.0.0
# Delete remote tag
git push origin :refs/tags/v1.0.0
# Create new tag
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0
APK Wonβt Install on Device
- Enable βInstall unknown appsβ in Android settings
- Download APK again (may be corrupted)
- Check Android version compatibility (min SDK 24)
- Try installing via ADB:
adb install app-release.apk
π Documentation
| Document | Purpose |
|---|---|
| GITHUB_APK_PUBLISHING_GUIDE.md | Complete publishing guide |
| QUICK_RELEASE_GUIDE.md | Quick reference card |
| PUBLISHING_SUMMARY.md | This document |
β Next Steps
- Set up GitHub secret (one-time):
- Add
GOOGLE_SERVICES_JSONsecret
- Add
- Create your first release:
./scripts/release.sh 1.0.0 - Monitor the build:
- https://github.com/DevelopersCoffee/airo/actions
- Share with users:
- https://github.com/DevelopersCoffee/airo/releases/latest
π Summary
You now have a fully automated release pipeline that:
β
Builds APKs (and other platforms) automatically
β
Publishes to GitHub Releases
β
Makes downloads available to anyone
β
Generates release notes
β
Runs security scans
β
Supports all major platforms
To publish a release, just run:
./scripts/release.sh 1.0.0
Thatβs it! π
Happy Releasing! π