How I Prepared My Flutter App “BudgetAfford” for Production: Step-by-Step Checklist

This post may contains affiliate links. As an amazon associate I earn from qualifying purchases.

Publishing a Flutter app can be overwhelming, especially when it comes to ads, signing, and Play Store submission. To save time and avoid mistakes, I’ve created a comprehensive checklist from my experience releasing BudgetAfford.


Step 1: Add Your App to AdMob

  1. Go to AdMob and sign in.

  2. Navigate to Apps → Add App.

  3. Since BudgetAfford is not on Google Play yet, select No.

  4. Fill in:

    • App name: BudgetAfford

    • Platform: Android

  5. Click Add App.

  6. Copy the App ID (looks like ca-app-pub-1234567890123456~1234567890) — this will go into your AndroidManifest.xml.


Step 2: Create Banner Ad Units

  1. Inside your app in AdMob → Ad units → + Create Ad Unit.

  2. Choose Banner.

  3. Name each banner according to the screen it will appear on:

    • Income Banner

    • Expenses Banner

    • Deductions Banner

  4. Leave Partner Bidding unchecked for simplicity.

  5. Click Create and copy each Ad Unit ID (looks like ca-app-pub-1234567890123456/9876543210).

  6. Repeat for all screens where ads appear.


Step 3: Update Flutter Code

  1. Add your App ID to android/app/src/main/AndroidManifest.xml:

<meta-data
android:name=“com.google.android.gms.ads.APPLICATION_ID”
android:value=“ca-app-pub-1234567890123456~1234567890”/>
  1. Replace test banner IDs in your screens with real Ad Unit IDs, but keep test ads enabled in debug builds:

import ‘package:flutter/foundation.dart’;

String getBannerAdUnitId(String screen) {
if (kDebugMode) {
return BannerAd.testAdUnitId;
}

switch (screen) {
case ‘Expenses’:
return ‘ca-app-pub-1234567890123456/EXPENSES_ID’;
case ‘Income’:
return ‘ca-app-pub-1234567890123456/INCOME_ID’;
case ‘Deductions’:
return ‘ca-app-pub-1234567890123456/DEDUCTIONS_ID’;
default:
return BannerAd.testAdUnitId;
}
}

  1. Call it when creating your banner:

adUnitId: getBannerAdUnitId(‘Expenses’),
  1. Make sure MobileAds.instance.initialize() is called in main() before loading any ads.


Step 4: Prepare Signing & Build

  1. Ensure key.properties is created and referenced in build.gradle for release signing:

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file(“key.properties”)
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}android {
signingConfigs {
release {
keyAlias keystoreProperties[‘keyAlias’]
keyPassword keystoreProperties[‘keyPassword’]
storeFile file(keystoreProperties[‘storeFile’])
storePassword keystoreProperties[‘storePassword’]
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}

Also READ  Custom Handmade Rustic Wooden Bathroom Vanity – Farmhouse Style & Live Edge Reclaimed Wood
  1. .gitignore should exclude key.properties and build folders.

  2. Build your release AAB:

flutter build appbundle

Step 5: Screenshots, Video & Metadata

  1. Prepare screenshots for all required device sizes.

  2. Prepare a promo video (optional but recommended).

  3. Update pubspec.yaml and app metadata.

  4. Ensure privacy policy URL is ready and uploaded.


Step 6: Ads.txt (Optional but Recommended)

  1. Generate your ads.txt entry for your AdMob publisher ID:

google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0
  1. Upload it to your website root.

  2. If no website exists, it’s optional; AdMob can still serve ads.


Step 7: Final Checks Before Upload

  • Test the release build on a device not registered as a test device.

  • Verify ads load (real ads may take up to 24–48 hours to appear).

  • Confirm package name matches Play Console: com.vasapps.budgetafford.

  • Ensure MobileAds.instance.initialize() is called.

  • Check privacy policy and content ratings.


Step 8: Upload to Play Console

  1. Open Play Console → Create a new app.

  2. Fill in pricing, countries, and ads declaration.

  3. Upload your .aab file.

  4. Submit for review.


✅ Summary

By following this checklist, you ensure:

  • Real ads are correctly integrated

  • App is properly signed and built

  • Metadata, screenshots, and promo video are ready

  • Optional items like ads.txt are included

  • Release build is verified on real devices

This process can now be reused for future apps, saving time and avoiding common mistakes.

This post may contains affiliate links. As an amazon associate I earn from qualifying purchases.

Scroll to Top