# 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.