Skip to content

chore(android): prepare Android build for Google Play release#3488

Open
DeckerSU wants to merge 4 commits into
devfrom
fix/android-google-play-prep
Open

chore(android): prepare Android build for Google Play release#3488
DeckerSU wants to merge 4 commits into
devfrom
fix/android-google-play-prep

Conversation

@DeckerSU

@DeckerSU DeckerSU commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Android-side preparation for a Google Play release. Three small, independent
build/config changes — no application code is touched.

Changes

  • Declare AD_ID permission for analytics — add
    com.google.android.gms.permission.AD_ID to the main AndroidManifest.xml.
    The app uses Firebase Analytics, which accesses the advertising ID. Apps
    targeting Android 13+ (API 33+) must declare this permission, otherwise the
    advertising ID is zeroed out.

  • Pin legacy Kotlin/DSL build behavior — keep the
    android.builtInKotlin=false and android.newDsl=false flags added by the
    Flutter Gradle migrator. They are opt-out compatibility flags that preserve
    the current build behavior after the Flutter upgrade. Migrating to Built-in
    Kotlin / the new DSL is deferred until plugin dependencies are confirmed
    compatible.

  • Ignore Android signing secrets — add **/*.jks, **/*.p12, and
    android/key.properties to .gitignore so the Google Play upload signing
    key and its passwords can never be committed. The keystore is supplied
    out-of-band (CI secrets / local file), not via VCS.

CharlVS and others added 4 commits May 5, 2026 22:56
chore(release): v0.9.5 release candidate

## Summary

This release prepares the `0.9.4` release line for mobile publishing as `0.9.5`, keeping the app version at `0.9.5+0` while incorporating the final mobile-readiness work from `dev`. It covers the published SDK `0.6.0` roll, the in-app legacy wallet migration flow, the iOS publishing identity update, Gleec Dex branding, web publishing alignment, and refreshed dependency metadata.

## New Features

- **Legacy Wallet Migration Flow** ([@CharlVS], #3475) - Adds the app-side migration flow for discovering legacy native wallets, checking compatibility, preparing imports, integrating migrated wallets with auth/session state, and cleaning up migrated legacy data from settings.
- **SDK 0.6.0 Integration** - Aligns the SDK submodule to the published `komodo-defi-sdk v0.6.0` release commit `ccc855082ee5026683188751484eed5342602698` and keeps the root lockfile aligned with the SDK package versions used by the app.

### SDK Updates

This release integrates `komodo-defi-sdk v0.6.0` with the mobile publishing package set bringing:

- **Legacy Wallet Migration Support** - Adds the `komodo_legacy_wallet_migration` package and supporting auth/framework hooks for discovering, verifying, importing, and cleaning up legacy wallet data.
- **TRON/TRC20 Readiness** - Hardens TRON activation, TRC20 handling, transaction history through Tronscan, explorer URL support, and TRX market-data coordination.
- **SIA Readiness** - Finalizes SIA activation and withdrawal handling for the mobile release line.
- **Balance, Fee, and Market Data Hardening** - Adds balance recovery mode, richer fee information, cached spot-price continuity, CoinGecko failure cooldowns, icon-precache hardening, and numeric JSON compatibility.

## Bug Fixes

- **Migration Startup and Compatibility Guardrails** ([@CharlVS], #3475) - Adds startup/settings migration services, compatibility dialog states, password-field handling, wallet metadata preparation, and migration cleanup coverage for legacy wallet users.
- **Fiat Preference and Wallet Visibility Hardening** ([@CharlVS], #3475) - Stabilizes fiat onramp defaults and wallet-gated UI behavior as part of the migration-ready app flow.

## UI/UX Improvements

- **Gleec Dex Branding Refresh** ([@CharlVS], #3479) - Keeps the updated Gleec Dex title, app metadata, icons, social preview assets, and Ramp logo cache-busting changes already prepared on `dev`.

## Platform-Specific Changes

### iOS

- **Bundle Identifier and Signing Team Update** ([@DeckerSU], #3482) - Switches the iOS bundle identifier to `com.GleecDEX.wallet` and the signing team to `B52ZCS7TMQ` for mobile publishing.

### Android

- **Package Path Alignment** ([@CharlVS], #3475) - Moves `MainActivity` into the Gleec package path used by the native release configuration.

### Web

- **Web Publishing Adjustment** ([@DeckerSU], #3476) - Keeps the non-WASM web build path adjustment from `dev` so web publishing remains aligned with the current deployment target.

## Technical Improvements

- **Legacy Migration Test Coverage** ([@CharlVS], #3475) - Adds unit/widget coverage for legacy app settings migration, legacy wallet migration, migration compatibility UI, cleanup UI, and fiat preference defaults.
- **Release Metadata Refresh** - Keeps the app release name at `0.9.5+0`, aligns the SDK submodule with SDK `0.6.0`, refreshes dependency resolution, and aligns the Dart SDK floor with the generated lockfile at `>=3.11.0 <4.0.0`.

## Validation

Release prep PR validation completed before merge:

- `flutter pub get --offline`
- `dart pub get --enforce-lockfile -C sdk`
- `flutter analyze --no-fatal-warnings --no-fatal-infos` exited 0 with existing warning/info backlog
- `flutter test test_units/main.dart`

**Full Changelog**: [0.9.4...0.9.5](0.9.4...0.9.5)
Add com.google.android.gms.permission.AD_ID to the main manifest.
The app uses Firebase Analytics, which accesses the advertising ID;
apps targeting Android 13+ (API 33+) must declare this permission to
keep using the advertising ID, otherwise it is zeroed out.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Flutter's Gradle migrator added these flags on a Flutter upgrade:

  android.builtInKotlin=false  -> Flutter does not apply the Kotlin
    Gradle Plugin itself; the app keeps applying KGP manually
    (kotlin-android in app/build.gradle + org.jetbrains.kotlin.android
    in settings.gradle).
  android.newDsl=false         -> keep the legacy Flutter Gradle Plugin
    DSL / plugin application.

Both are opt-out (false) compatibility flags that preserve the current
build behavior so the project keeps building unchanged after the
upgrade. Migrating to Built-in Kotlin / new DSL (flipping these to true
and removing the manual KGP declarations) is deferred until plugin
dependencies are confirmed compatible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add explicit ignore patterns for release signing material so it can
never be committed:

  **/*.jks            -> keystores
  **/*.p12            -> PKCS#12 keystore exports
  android/key.properties -> store/key passwords and alias

These hold the Google Play upload signing key and its passwords; a leak
would let anyone sign uploads as us. The keystore must be supplied
out-of-band (CI secrets / local file), not via VCS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@DeckerSU DeckerSU requested a review from CharlVS June 7, 2026 00:38
@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit a20dc43):

https://walletrc--pull-3488-merge-p9g0adaw.web.app

(expires Sun, 14 Jun 2026 00:45:06 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: f66a4ff03faa546f12f0ae5a841bd9eff2714dcc

@DeckerSU

DeckerSU commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

Simultaneously with this PR, the following changes in the Flutter SDK must also be merged - GLEECBTC/komodo-defi-sdk-flutter#355 , and the updated version of the SDK must be included in this repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants