Build Android APK via Myket maven mirror (verified)

- Myket mirror serves maven2 layout at root https://maven.myket.ir (proxies
  Maven Central + Google/AGP); android/build.gradle uses it
- gradle-mirror.init.gradle template injects the mirror into all modules and
  pins build-tools 36 + Java 17 (this env lacks build-tools 35 / JDK 21)
- ANDROID.md updated with the exact working build command
- Produces app-debug.apk (~4.5 MB)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-04 15:22:34 +03:30
parent 38691154c8
commit 84ccbea56a
3 changed files with 52 additions and 39 deletions
+21 -8
View File
@@ -23,20 +23,33 @@ 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)
## ⚠️ Maven mirror (Iran) — VERIFIED WORKING
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:
Gradle pulls the Android Gradle Plugin from **dl.google.com** + **Maven Central**,
blocked in Iran. The **Myket** mirror proxies both — at the **root** (no `/maven2`):
```
https://maven.myket.ir
```
Copy `android/gradle-mirror.init.gradle.example``android/gradle-mirror.init.gradle`,
then build with the init script. (The `gradlew.bat` wrapper has a CLASSPATH quirk on
this setup, so invoke the wrapper jar with `java` directly):
```bash
cd android
gradlew.bat assembleDebug --init-script gradle-mirror.init.gradle
java -classpath gradle\wrapper\gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain \
assembleDebug --init-script gradle-mirror.init.gradle --no-daemon
# → app/build/outputs/apk/debug/app-debug.apk (≈4.5 MB)
```
Copy `android/gradle-mirror.init.gradle.example``android/gradle-mirror.init.gradle`
and set your mirror URL(s). (Kept out of git; machine-specific.)
The init script also pins **build-tools 36.0.0** and **Java 17** compatibility,
which are the versions installed here (Capacitor 8 defaults to build-tools 35 / JDK 21).
On a CI box with JDK 21 + build-tools 35 you can drop those overrides.
> For Nexus instead of Myket directly: create a **maven2 (proxy)** repo with
> Remote storage URL `https://maven.myket.ir`, add it to a **maven2 (group)**,
> and point `MIRROR` at the group URL.
## Release (Cafe Bazaar / Myket)
1. Generate a keystore: `keytool -genkey -v -keystore bargevasat.keystore -alias bargevasat -keyalg RSA -keysize 2048 -validity 10000`