Files
pleno-vue/docs/mobile-artifacts.md
T

2.8 KiB

Mobile Store Artifacts

The Mobile Store Artifacts workflow builds signed Android and iOS store artifacts from the Vue/Vite web app through Capacitor.

Use the Capacitor project under android/ for the Google Play Store package. The Bubblewrap/TWA files at the repository root are not the path used by mobile:android:bundle.

Triggers

  • Manual: run Mobile Store Artifacts from GitHub Actions and optionally provide version_name and version_code.
  • Tag: push a tag named mobile-vX.Y.Z; the workflow uses X.Y.Z as the store version name.
  • Automatic Android Play Store artifact: after the Automated Tests workflow completes successfully on master, GitHub Actions builds and uploads a signed Android App Bundle from the tested commit.

Required Secrets

Android:

  • ANDROID_KEYSTORE_BASE64
  • ANDROID_KEYSTORE_PASSWORD
  • ANDROID_KEY_ALIAS
  • ANDROID_KEY_PASSWORD

iOS:

  • IOS_CERTIFICATE_BASE64
  • IOS_CERTIFICATE_PASSWORD
  • IOS_PROVISION_PROFILE_BASE64
  • IOS_KEYCHAIN_PASSWORD
  • APPLE_TEAM_ID

Local Checks

Run the native permission validation after changing Capacitor, native manifests, or store metadata:

npm run mobile:permissions:check

Build a local unsigned Android App Bundle for packaging verification:

npm run mobile:android:bundle:unsigned

Build a signed Play Console upload bundle after exporting the Android upload-key variables:

export ANDROID_KEYSTORE_FILE=/path/to/upload-key.jks
export ANDROID_KEYSTORE_PASSWORD=...
export ANDROID_KEY_ALIAS=...
export ANDROID_KEY_PASSWORD=...
npm run mobile:android:bundle

The signed Android bundle is written to:

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

Android artifacts use package id io.truckwash.twa. iOS artifacts use bundle id io.truckwash.app.

The Android project currently targets SDK 36. Google Play requires new apps and updates to target Android 15/API 35 or higher starting August 31, 2025: https://developer.android.com/google/play/requirements/target-sdk

Play Store graphics are generated in the workspace-level playstoregraphics/ folder:

  • App icon: playstoregraphics/universal/app-icon/truck-wash-icon-512.png
  • Feature graphic: playstoregraphics/universal/feature-graphic/truck-wash-feature-1024x500.jpg
  • Phone screenshots: playstoregraphics/phone/screenshots/
  • 7-inch tablet screenshots: playstoregraphics/tablet-7/screenshots/
  • 10-inch tablet screenshots: playstoregraphics/tablet-10/screenshots/
  • Chromebook screenshots: playstoregraphics/chromebook/screenshots/

The native manifests declare camera and foreground location access for the store binaries. Keep the App Store Connect and Play Console privacy questionnaires aligned with the app's actual camera and location data handling before submitting a release.