Files
MindMachine/DEVELOPMENT.md

3.2 KiB
Raw Blame History

MindMachine - Development Notes

Build prerequisites

  • JDK 17
  • Android Studio (recommended)
  • Android SDK installed
  • local.properties configured (Android Studio usually writes this)

Build outputs (where files end up)

  • Debug APK

    • Task: assembleDebug
    • Output: app/build/outputs/apk/debug/app-debug.apk
  • Release AAB (Android App Bundle)

    • Task: bundleRelease
    • Output: app/build/outputs/bundle/release/app-release.aab
  • Debug AAB (rarely needed)

    • Task: bundleDebug
    • Output: app/build/outputs/bundle/debug/app-debug.aab

Create an AAB (CLI)

Before uploading a new AAB to Google Play, make sure the app version is bumped:

  • app/build.gradle.ktsdefaultConfig.versionCode must be unique and increasing on Play Console.
  • Update versionName as your human-readable release string.

From the repo root:

cd MindMachine
./gradlew bundleRelease

The bundle will be at:

app/build/outputs/bundle/release/app-release.aab

(Optional) clean rebuild:

./gradlew clean bundleRelease

Create an AAB (Android Studio)

  1. BuildGenerate Signed Bundle / APK…
  2. Select Android App Bundle
  3. Select Release
  4. Select the upload keystore
  5. Finish

Signing setup (release bundles)

Release signing is configured in app/build.gradle.kts to load credentials from:

  • keystore/upload-keystore.properties

That file should contain the standard fields:

storeFile=keystore/<your-upload-keystore>.jks
storePassword=<password>
keyAlias=<alias>
keyPassword=<password>

Notes:

  • Treat upload-keystore.properties as secret. Do not share it publicly.
  • On Google Play you typically use Play App Signing. You upload with your upload key, Google signs for distribution.

Play Billing testing (subscribe/buy) checklist

Important: Billing only works reliably when the app is installed from Google Play (Internal/Closed testing). Sideloaded builds often fail Billing flows.

  1. Play Console

    • Create your in-app products and/or subscriptions (base plans/offers).
    • Make sure each product is in an Active state.
  2. Add testers

    • Add your tester Gmail(s) to the apps Internal testing (or Closed testing) track.
    • Also add the same Gmail(s) to Play Console → Setup → License testing.
  3. Upload AAB + publish to the test track

    • Upload the latest app-release.aab to the test track.
    • Publish/roll out the test release.
  4. Install from Play Store

    • On the device, log into the Play Store using the tester account.
    • Install the app from the test track (Play will show it as available to that tester).
  5. Payment profile / payment method (if prompted)

    • If Google prompts for payment info on the tester account, add a payment method in:
      • Play Store → Payments & subscriptionsPayment methods
      • (and/or set up the Google Payments profile for that account)
    • Test purchases will use Googles test purchase flow (no real charge).
  6. Verify in the app

    • Trigger the subscribe/buy flow and confirm the purchase dialog appears.
    • Confirm acknowledgements/entitlements are applied as expected.