Flutter
راهاندازی Flutter با Mirror مایکت
Flutter
این راهنما توضیح میدهد چگونه Flutter را بهگونهای تنظیم کنید که تمام packageها و Flutter artifactها را از زیرساخت مایکت دریافت کند و وابستگی مستقیمی به اینترنت خارجی نداشته باشید.
برای راهاندازی Flutter با استفاده از Mirror مایکت ۳ مرحله لازم است:
- دانلود Flutter SDK
- تنظیم Flutter برای استفاده از Mirror مایکت
- تنظیمات Gradle
۱. دانلود Flutter SDK
برای دانلود Flutter SDK کافی است دامنه https://storage.googleapis.com را با https://pub.myket.ir جایگزین کنید.
مثال دانلود نسخهی 3.44.0 ویندوز:
https://pub.myket.ir/flutter_infra_release/releases/stable/windows/flutter_windows_3.44.0-stable.zip
مثال دانلود نسخهی 3.44.0 لینوکس:
https://pub.myket.ir/flutter_infra_release/releases/stable/linux/flutter_linux_3.44.0-stable.tar.xz
مثال دانلود نسخهی 3.44.0 مک:
Apple Silicon:
https://pub.myket.ir/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_3.44.0-stable.zip
Intel:
https://pub.myket.ir/flutter_infra_release/releases/stable/macos/flutter_macos_x64_3.44.0-stable.zip
۲. تنظیم Flutter برای استفاده از Mirror مایکت
فلاتر از دو Environment Variable مختلف استفاده میکند: متغییر PUB_HOSTED_URL برای دانلود packageهای Dart و Flutter و متغییر FLUTTER_STORAGE_BASE_URL برای دانلود Flutter SDK و Flutter Engine Artifacts. هر دوی این مقادیر باید روی این مقدار تنظیم شوند:
https://pub.myket.ir
تنظیم روی ویندوز
- باز کردن PowerShell — یک پنجره جدید PowerShell باز کنید.
- تنظیم Mirrorها
$env:PUB_HOSTED_URL="https://pub.myket.ir"
$env:FLUTTER_STORAGE_BASE_URL="https://pub.myket.ir"
دائمی کردن تنظیمات ویندوز
تنظیم PUB_HOSTED_URL
[Environment]::SetEnvironmentVariable(
"PUB_HOSTED_URL",
"https://pub.myket.ir",
"User"
)
تنظیم FLUTTER_STORAGE_BASE_URL
[Environment]::SetEnvironmentVariable(
"FLUTTER_STORAGE_BASE_URL",
"https://pub.myket.ir",
"User"
)
تنظیم روی لینوکس
export PUB_HOSTED_URL=https://pub.myket.ir
export FLUTTER_STORAGE_BASE_URL=https://pub.myket.ir
دائمی کردن تنظیمات لینوکس
echo 'export PUB_HOSTED_URL=https://pub.myket.ir' >> ~/.bashrc
echo 'export FLUTTER_STORAGE_BASE_URL=https://pub.myket.ir' >> ~/.bashrc
echo 'export PATH="$HOME/dev/flutter/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
تنظیم روی مک
تنظیم Mirrorها
export PUB_HOSTED_URL=https://pub.myket.ir
export FLUTTER_STORAGE_BASE_URL=https://pub.myket.ir
دائمی کردن تنظیمات مک
echo 'export PUB_HOSTED_URL=https://pub.myket.ir' >> ~/.bash_profile
echo 'export FLUTTER_STORAGE_BASE_URL=https://pub.myket.ir' >> ~/.bash_profile
echo 'export PATH="$HOME/dev/flutter/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
تست کردن فرایند دانلود فایلها
flutter pub get
۳. تنظیمات Gradle
اگر از settings.gradle استفاده میکنید:
pluginManagement {
repositories {
maven { url = uri("https://maven.myket.ir/") }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url = uri("https://maven.myket.ir/") }
}
}
اگر از build.gradle استفاده میکنید:
buildscript {
repositories {
maven { url 'https://maven.myket.ir/' }
}
}
allprojects {
repositories {
maven { url 'https://maven.myket.ir/' }
}
}
❓ سوالات متداول
۱. آیا فقط تنظیم PUB_HOSTED_URL کافی است؟
خیر. Flutter علاوه بر packageهای Dart/Flutter، فایلهای دیگری مانند Flutter Engine، Dart SDK، Web SDK و artifactهای binary را نیز دانلود میکند.
به همین دلیل باید هر دو متغیر زیر تنظیم شوند:
PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL
۲. چرا بعد از تنظیم Mirror هنوز Gradle یا Android dependencyها از اینترنت خارجی دانلود میشوند؟
زیرا تنظیمات Flutter فقط مربوط به packageهای Dart و Flutter artifacts است.
برای Android build، بخش Gradle نیز باید روی Mirror مایکت تنظیم شود:
https://maven.myket.ir/
در غیر این صورت Gradle ممکن است به سرویسهایی مانند:
- Maven Central
- Google Maven
- Gradle Plugin Portal
متصل شود.
۳. آیا این تنظیمات روی Android Studio هم اعمال میشوند؟
بله. اگر Environment Variableها به صورت دائمی تنظیم شده باشند و فایلهای Gradle پروژه نیز تنظیم شده باشند، Android Studio نیز از Mirror مایکت استفاده خواهد کرد.
بعد از اعمال تغییرات، بهتر است Android Studio یکبار بسته و دوباره اجرا شود.
۴. اگر flutter pub get یا flutter doctor خطا داد چه چیزی را بررسی کنیم؟
موارد زیر را بررسی کنید:
- مقدار
PUB_HOSTED_URL - مقدار
FLUTTER_STORAGE_BASE_URL - دسترسی به
https://pub.myket.ir - تنظیم بودن maven.myket.ir در فایلهای Gradle
- تنظیم بودن PATH برای Flutter
برای تست Environment Variableها:
Linux / macOS:
echo $PUB_HOSTED_URL
echo $FLUTTER_STORAGE_BASE_URL
Windows PowerShell:
echo $env:PUB_HOSTED_URL
echo $env:FLUTTER_STORAGE_BASE_URL
۵. آیا بعد از این تنظیمات Flutter کاملاً بدون اینترنت خارجی کار میکند؟
در اکثر پروژههای Flutter Android بله.
اما اگر پروژه از موارد زیر استفاده کند، ممکن است همچنان به سرویسهای خارجی نیاز داشته باشد:
- Git dependencies داخل pubspec.yaml
- CocoaPods در پروژههای iOS
- Android SDKهایی که هنوز نصب نشدهاند
- NDK یا CMake
- دانلود JDK
برای بهترین تجربه پیشنهاد میشود Android SDK و JDK نیز از Mirror داخلی یا بستههای آفلاین نصب شوند.