Skip to main content

Overview

Deploy Zeus Flutter to iOS App Store and Google Play Store.

iOS App Store

1. Prepare App

# Update version in pubspec.yaml
version: 1.0.0+1

# Clean build
flutter clean

# Install dependencies
flutter pub get

# Update pods
cd ios
pod install

2. Configure Signing

In Xcode:
  1. Open ios/Runner.xcworkspace
  2. Select Runner target
  3. Signing & Capabilities → Select your team
  4. Update bundle ID (e.g., com.yourcompany.zeus)

3. Build Archive

flutter build ios --release --flavor production

# Or in Xcode
# Product → Archive

4. Upload

In Xcode Organizer:
  1. Select archive
  2. Distribute App → App Store Connect
  3. Upload

5. App Store Connect

  1. Create new app
  2. Fill metadata:
    • App name: Zeus Finance
    • Subtitle: Expense tracking
    • Description: Track expenses, manage wallets…
  3. Upload screenshots (required sizes)
  4. Set pricing
  5. Submit for review

Google Play Store

1. Prepare App

# Update version
version: 1.0.0+1  # Increment build number

# Clean and build
flutter clean
flutter pub get

# Build app bundle
flutter build appbundle --release --flavor production

2. Configure Signing

Create signing config in android/app/build.gradle:
android {
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}
Create android/key.properties:
storePassword=your_password
keyPassword=your_password
keyAlias=zeus
storeFile=/path/to/keystore.jks

3. Generate Keystore

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA \
  -keysize 2048 -validity 10000 -alias zeus

4. Upload to Play Console

  1. Go to Google Play Console
  2. Create app
  3. Upload AAB: build/app/outputs/bundle/productionRelease/app-production-release.aab
  4. Fill store listing
  5. Set up pricing
  6. Submit for review

CI/CD with GitHub Actions

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    tags:
      - 'v*'

jobs:
  deploy-android:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.10.0'
      
      - name: Decode keystore
        run: |
          echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > android/app/keystore.jks
      
      - name: Build
        env:
          KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
        run: flutter build appbundle --release --flavor production
      
      - name: Deploy to Play Store
        uses: r0adkll/upload-google-play@v1
        with:
          serviceAccountJsonPlainText: ${{ secrets.PLAY_STORE_JSON }}
          packageName: com.yourcompany.zeus
          releaseFiles: build/app/outputs/bundle/productionRelease/*.aab
          track: production

  deploy-ios:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v3
      
      - uses: subosito/flutter-action@v2
      
      - name: Install dependencies
        run: |
          flutter pub get
          cd ios && pod install
      
      - name: Build and deploy
        env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
        run: |
          fastlane ios deploy

Required Assets

Screenshots

iOS:
  • 6.5” Display (iPhone 11 Pro Max, iPhone 11, iPhone XS Max): 1242 x 2688
  • 5.5” Display (iPhone 8 Plus, iPhone 7 Plus): 1242 x 2208
  • 12.9” Display (iPad Pro): 2048 x 2732
Android:
  • Phone: 1080 x 1920
  • 7” tablet: 1080 x 1920
  • 10” tablet: 1920 x 1080

App Icons

Generate with:
flutter pub add flutter_launcher_icons
flutter pub run flutter_launcher_icons:main

Pre-Launch Checklist

  • Test on real devices
  • Verify offline functionality
  • Check sync works
  • Review performance
  • Add analytics
  • Configure crash reporting
  • Test different screen sizes
  • Check accessibility
  • Write privacy policy
  • Prepare screenshots
  • Write app description
  • Set pricing

Post-Launch

  • Monitor crash reports
  • Track user reviews
  • Respond to feedback
  • Plan updates