4123654077
CI/CD / CI · API (dotnet build + test) (push) Successful in 12m40s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 10m30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m7s
CI/CD / CI · Admin Web (tsc) (push) Successful in 39s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 50s
CI/CD / Deploy · all services (push) Successful in 23s
Google's Android maven2 artifacts (AGP, androidx, Kotlin) 404 from Iran like
pub.dev does. Route Gradle resolution through the reachable Aliyun mirrors:
- android/settings.gradle.kts (pluginManagement) + build.gradle.kts (allprojects)
now list maven.aliyun.com/repository/{gradle-plugin,google,central} before the
originals (kept as fallback).
- BUILD_IRAN.md documents the full setup incl. the machine-local GRADLE_USER_HOME
init.gradle needed for Flutter's included flutter_tools/gradle build.
Verified: dependency resolution now succeeds via the mirrors (AGP + kotlin-compiler
download from Aliyun). The APK build itself is currently blocked only by low disk
space on this machine, not configuration.
54 lines
2.0 KiB
Markdown
54 lines
2.0 KiB
Markdown
# Building meezi_app from Iran (sanctions mirrors)
|
|
|
|
`pub.dev`, Google's package storage, and Google's Android maven2 artifacts are
|
|
sanctions-filtered from Iranian IPs (403 / 404). Use the reachable mirrors below.
|
|
|
|
## 1. Environment (set once, persistently)
|
|
|
|
```powershell
|
|
setx PUB_HOSTED_URL "https://pub.flutter-io.cn"
|
|
setx FLUTTER_STORAGE_BASE_URL "https://storage.flutter-io.cn"
|
|
```
|
|
|
|
These make `flutter pub get`, `flutter create`, and engine/artifact downloads work.
|
|
**Web already builds** with just these (`flutter build web`).
|
|
|
|
## 2. Android — Maven/Gradle mirror
|
|
|
|
Google's Android maven2 (AGP, androidx, etc.) 404s here, so:
|
|
|
|
- `android/settings.gradle.kts` and `android/build.gradle.kts` already point their
|
|
repositories at the Aliyun mirrors (committed).
|
|
- Flutter's **included** `flutter_tools/gradle` build has its own repositories, so add a
|
|
global Gradle init script. Put this at `%GRADLE_USER_HOME%/init.gradle`
|
|
(e.g. `C:\gradlecache\init.gradle`, then build with `GRADLE_USER_HOME=C:\gradlecache`):
|
|
|
|
```gradle
|
|
def aliyun = [
|
|
'https://maven.aliyun.com/repository/gradle-plugin',
|
|
'https://maven.aliyun.com/repository/google',
|
|
'https://maven.aliyun.com/repository/central',
|
|
]
|
|
beforeSettings { settings ->
|
|
settings.pluginManagement { repositories { aliyun.each { u -> maven { url u } } } }
|
|
if (settings.rootDir.path.replace('\\', '/').contains('flutter_tools')) {
|
|
settings.dependencyResolutionManagement { repositories { aliyun.each { u -> maven { url u } } } }
|
|
}
|
|
}
|
|
```
|
|
|
|
## 3. Build
|
|
|
|
```powershell
|
|
$env:GRADLE_USER_HOME = "C:\gradlecache" # keep the cache on a drive with space
|
|
cd mobile/meezi_app
|
|
flutter build apk --debug
|
|
```
|
|
|
|
## Status
|
|
- ✅ `flutter build web` — works.
|
|
- ✅ Android dependency resolution — works via the Aliyun mirrors (verified).
|
|
- ⛔ APK build currently blocked only by **disk space** (needs a few GB free for the
|
|
Gradle cache + build output). Free space (the large Docker WSL vhdx on C: is the
|
|
obvious reclaim), then `flutter build apk` completes.
|