Skip to the content.

πŸ“¦ 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

  1. βœ… docs/release/GITHUB_APK_PUBLISHING_GUIDE.md
    • Complete guide for publishing APKs
    • User installation instructions
    • Troubleshooting tips
    • Advanced configuration
  2. βœ… docs/release/QUICK_RELEASE_GUIDE.md
    • Quick reference card
    • One-command release
    • Common commands
    • Best practices
  3. βœ… docs/release/PUBLISHING_SUMMARY.md (this file)
    • Overview of setup
    • Quick start guide
    • Links to resources

Scripts

  1. βœ… scripts/release.sh
    • Automated release script
    • Version bumping
    • Pre-release checks
    • Tag creation and pushing

Configuration (Already Exists)

  1. βœ… .github/workflows/build-and-release.yml
    • Builds all platforms
    • Creates GitHub Release
    • Uploads artifacts
  2. βœ… .github/workflows/ci.yml
    • Runs tests on every push
    • Builds debug APK
    • Security scanning

README

  1. βœ… README.md (Updated)
    • Download badges
    • Direct download links
    • Release information

πŸš€ Quick Start: Publishing Your First Release

# Make script executable (first time only)
chmod +x scripts/release.sh

# Create and publish release
./scripts/release.sh 1.0.0

The script will:

  1. βœ… Update version in pubspec.yaml
  2. βœ… Run tests and analysis
  3. βœ… Create/edit RELEASE_NOTES.md
  4. βœ… Commit changes
  5. βœ… Create and push tag
  6. βœ… 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

  1. Go to: https://github.com/DevelopersCoffee/airo/settings/secrets/actions
  2. Click β€œNew repository secret”
  3. Name: GOOGLE_SERVICES_JSON
  4. Value: Paste the base64 output
  5. Click β€œAdd secret”

That’s it! You only need to do this once.


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)

[![Download APK](https://img.shields.io/github/v/release/DevelopersCoffee/airo?label=Download%20APK&color=success)](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

  1. Go to: https://github.com/DevelopersCoffee/airo/releases
  2. Each release shows download count for each file
  3. 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

  1. Check GitHub Actions logs: https://github.com/DevelopersCoffee/airo/actions
  2. Verify GOOGLE_SERVICES_JSON secret is set
  3. Ensure pubspec.yaml has no errors
  4. 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

  1. Enable β€œInstall unknown apps” in Android settings
  2. Download APK again (may be corrupted)
  3. Check Android version compatibility (min SDK 24)
  4. 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

  1. Set up GitHub secret (one-time):
    • Add GOOGLE_SERVICES_JSON secret
  2. Create your first release:
    ./scripts/release.sh 1.0.0
    
  3. Monitor the build:
    • https://github.com/DevelopersCoffee/airo/actions
  4. 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! πŸŽ‰