Skip to content
Stacklyn Labs
  • Products
  • Services
  • Contact
  • About
  • GuidesStep-by-step buying and building playbooksBlogTutorials, architecture notes, updatesHelp CenterSetup, licence and support articles
  • Hire Us
  1. Home
  2. Help Center
  3. SubZero Setup Guide: Run, Rebrand and Release the Flutter Template

SubZero Setup Guide: Run, Rebrand and Release the Flutter Template

Last updated: November 9, 2026

On this page

Before you startStep 1: Get the project runningStep 2: Rebrand in AppConfigStep 3: Change the package IDStep 4: Edit local data safelyStep 5: Add your AdMob IDsStep 6: Build a signed releaseTroubleshootingWhere to get help
Before you startStep 1: Get the project runningStep 2: Rebrand in AppConfigStep 3: Change the package IDStep 4: Edit local data safelyStep 5: Add your AdMob IDsStep 6: Build a signed releaseTroubleshootingWhere to get help

You have downloaded the SubZero subscription manager template and want to see it running before you change anything. This SubZero setup guide takes you from the zip file to a signed release build, and it points out the places where buyers usually lose an afternoon. There is no server, account or licence key to set up. SubZero stores everything in a local Hive database on the device, so the only setup is your Flutter toolchain.

Before you start

Check these on your machine first:

  • Flutter 3.44 or later on the stable channel, which includes Dart 3.12. Run flutter --version to check.
  • Android builds: the latest stable Android Studio, Android SDK 36 and JDK 17.
  • iOS builds: a Mac with Xcode and CocoaPods. The deployment target is iOS 13.0.
  • Windows only: turn on Developer Mode (Settings > Privacy & security > For developers) so Flutter can link plugins.

There is no .env file and no Firebase project. The project ships with Google's AdMob test IDs, so it runs as it is. If you only want the five-minute path, the official SubZero Quick Setup guide covers it on one page.

Step 1: Get the project running

  1. Unzip the download and open a terminal in the folder that contains pubspec.yaml.

  2. Install the packages and check the project is healthy:

    flutter pub get
    flutter analyze
    flutter test
    
  3. Start an emulator or connect a phone, then run:

    flutter devices
    flutter run
    

You should see the onboarding, then the Dashboard in the dark theme. The generated Riverpod files (*.g.dart) are already included, so you don't need build_runner for a first run.

Test on Android or iOS, not in Chrome. The web build exists for the live demo, and notifications, backup and restore, PDF export and ads are switched off there.

Step 2: Rebrand in AppConfig

Most branding sits in one file: lib/core/config/app_config.dart. It holds the app name, tagline, company, support email, version, file prefix and brand colours. The About screen, privacy text, PDF report, backup file names and theme all read from it.

Two pitfalls here:

  • Use hot restart, not hot reload. These values are constants, so hot reload won't show the change and you'll think the edit failed.
  • Keep AppConfig.version equal to the version name in pubspec.yaml. The template ships as version: 1.5.0+3. If the two drift apart, the app shows one version and the store shows another.

AppConfig does not cover native settings. The name under the icon is android:label in android/app/src/main/AndroidManifest.xml and CFBundleDisplayName in ios/Runner/Info.plist. For the icon and splash, replace assets/icons/icon.png (1024 x 1024 px) and assets/icons/splash.png, then regenerate:

dart run flutter_launcher_icons
dart run flutter_native_splash:create

Step 3: Change the package ID

The default ID is com.stacklynlabs.subzero on every platform. Change it before you create any store listing or AdMob app, because both are tied to the ID you register. The SubZero-specific part is moving MainActivity.kt out of android/app/src/main/kotlin/com/stacklynlabs/subzero/ into the folder that matches your new ID. The full find-and-replace, Xcode and verification steps are in changing your app's package name.

Step 4: Edit local data safely

Editing the 25 quick-add templates in lib/core/constants/subscription_templates.dart is safe. Saved subscriptions keep their own name, price, colour and category, so a template change never touches existing user data.

Adding a field to SubscriptionModel is where data gets corrupted:

  1. Use the next unused @HiveField number, which is 9, and make the field nullable or give it a default.
  2. Edit subscription_model.g.dart by hand. The Hive adapter is not produced by build_runner, so running it will not add your field to the adapter's read and write methods.
  3. Add the field to the backup map in lib/core/services/backup_service.dart.

Never change or reuse an existing typeId or @HiveField number. Users who update the app would load their old records with the wrong fields.

Step 5: Add your AdMob IDs

  1. Put your real AdMob App ID in AndroidManifest.xml and Info.plist. The guide warns the app crashes on launch without a valid App ID.
  2. Replace the release-branch placeholders in lib/core/services/ad_service.dart with your Ad Unit IDs. Debug builds keep using Google's test IDs.
  3. In AdMob, publish a consent message and assign it to your app. The consent form only loads for a registered app.

Don't use your real ad units while developing. Google can treat that as invalid traffic.

Step 6: Build a signed release

SubZero 1.5.0 reads android/key.properties automatically. Create an upload keystore, copy android/key.properties.example to android/key.properties and fill it in. In this template, a relative storeFile path is resolved from android/app/, so either put the keystore there or use an absolute path. Raise the number after + in pubspec.yaml for every Play upload, then build:

flutter build appbundle --release
flutter build ipa --release

If Gradle prints WARNING: android/key.properties not found, the bundle was signed with the debug key and Google Play will reject it. Keystore creation, Play App Signing and the iOS upload are covered step by step in Flutter release build signing for Android and iOS.

Getting from here to a store-ready build touches Dart constants, Gradle, the Android manifest, Info.plist, Xcode signing and the AdMob console, and a mistake in any of them often shows up only as a build error or a store rejection. If you'd rather hand that part off, our Flutter app reskinning service does the rebrand, package ID and signed builds for you.

Troubleshooting

"The current Dart SDK version is X, requires ^3.9.2". Your Flutter is too old. Run flutter upgrade, then flutter doctor.

"Building with plugins requires symlink support". Windows only. Turn on Developer Mode.

Android build fails with Java errors. Install JDK 17 and point Flutter at it with flutter config --jdk-dir "path/to/jdk17".

"Namespace not specified" or a package mismatch after changing the ID. Check namespace and applicationId in android/app/build.gradle.kts, and make sure the MainActivity.kt folder and its package line match the new ID.

The app crashes on launch after you added AdMob. The App ID in the manifest or Info.plist is missing or invalid.

Reminders don't appear. Reminders fire at 9:00 AM local time, one day before the billing date. Allow notifications, and on Android 12+ allow "Alarms & reminders". Some Android brands delay alarms through battery optimisation, so set the app to "Unrestricted".

CocoaPods error on iOS. Run flutter clean && flutter pub get, then cd ios && pod repo update && pod install && cd ...

Where to get help

The SubZero Complete Setup guide covers the parts this article skips: fonts, the full data model, consent testing and the store checklist. CHANGELOG.md in the project root lists every change by version.

If you are still stuck, email support@stacklynlabs.com with your flutter --version output, your platform and the full error message.

Was this article helpful?

If you're still stuck, our team is happy to help directly.

Contact Support

Related Articles

Zenith Setup Guide: Run, Rebrand and Release the Flutter App

You bought Zenith on Gumroad or CodeCanyon, unzipped the download, and want to see it working before you…

Nov 09, 2026 · 6 min readRead article
Vet Vault Setup Guide: Run, Rebrand and Release the Flutter App

You bought Vet Vault on Gumroad or CodeCanyon, unzipped it, and want it running on a phone before…

Nov 09, 2026 · 6 min readRead article
Flutter Build Errors After Purchase: Troubleshooting Guide

You unzipped the template, opened a terminal, ran flutter run , and got a screen of red text…

Oct 23, 2026 · 7 min readRead article
Stacklyn Labs

Empowering businesses and developers with secure, high-performance digital tools, source templates, and scalable backend platforms.

FlutterWordPressBootstrap 5
Explore
  • Home
  • Products
  • Services
  • App Reskinning
  • Backend Setup
  • Store Deployment
  • Guides
  • About
  • Blog
  • Contact
Developer Portfolios
  • CodeCanyon Store
  • Codester Profile
Support Resources
  • License Activation
  • Help Center
  • Buying Flutter Templates
Connect & Support
Direct Email Supportsupport@stacklynlabs.com
Business Operating HoursMon - Fri: 9:00 AM - 6:00 PM

© 2026 Stacklyn Labs. All Rights Reserved.
  • Privacy Policy
  • •
  • Terms of Service