Files
HokmPlay/ANDROID.md
T
soroush.asadi 38691154c8 Add Capacitor Android packaging (APK) for Cafe Bazaar / Myket
- Next static export (output: export) wrapped by Capacitor; appId
  com.bargevasat.app, appName «برگ وسط»
- android/ native project + @capacitor/app; hardware back handled by
  CapacitorBack (back a screen, exit at home)
- npm scripts (cap:sync, android:open, android:apk), ANDROID.md
- Gradle Maven-mirror init-script template (dl.google.com/Maven Central are
  blocked in Iran — same reason NuGet is mirrored)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 14:31:14 +03:30

1.9 KiB

برگ وسط — Android (Capacitor) build

The app is packaged with Capacitor for Cafe Bazaar / Myket.

Layout

  • next.config.tsoutput: "export" (static site in out/)
  • capacitor.config.ts → appId com.bargevasat.app, appName «برگ وسط», webDir out
  • android/ → generated native project (committed; build outputs are git-ignored)
  • Hardware back button handled by src/components/CapacitorBack.tsx (@capacitor/app)

Build the web + sync native

npm run cap:sync          # next build (export) + cap sync android

Build the APK

npm run android:apk       # → android/app/build/outputs/apk/debug/app-debug.apk
# or open in Android Studio:
npm run android:open

Point the app at the live server at build time: NEXT_PUBLIC_USE_SERVER=1 NEXT_PUBLIC_SERVER_URL=https://api.example.com npm run cap:sync

⚠️ Maven mirror required (Iran)

Gradle pulls the Android Gradle Plugin from dl.google.com and Maven Central, which are blocked in Iran — exactly like nuget.org. Provide a Maven/Gradle mirror (your Nexus maven-public group that proxies Maven Central and Google's android repo), then build with the init script:

cd android
gradlew.bat assembleDebug --init-script gradle-mirror.init.gradle

Copy android/gradle-mirror.init.gradle.exampleandroid/gradle-mirror.init.gradle and set your mirror URL(s). (Kept out of git; machine-specific.)

Release (Cafe Bazaar / Myket)

  1. Generate a keystore: keytool -genkey -v -keystore bargevasat.keystore -alias bargevasat -keyalg RSA -keysize 2048 -validity 10000
  2. Configure signing in android/app/build.gradle (release signingConfig).
  3. gradlew.bat assembleRelease (or bundleRelease for AAB) → upload to Cafe Bazaar / Myket.
  4. App icon/splash: replace android/app/src/main/res/** (use @capacitor/assets to generate).