نصب داخل ایران
نصب SDKهای ابرووا تریس و وابستگیهایشان با mirrorهای ایرانی، تا بیلد وقتی اینترنت بینالملل کند یا قطع است هم کار کند.
SDKهای ابرووا از Abrova Center نصب میشوند که داخل ایران است. هر SDK چند پکیج رایج دیگر هم لازم دارد (مثلاً AndroidX، OkHttp یا http برای Dart). اینها از مخزنهای عمومی میآیند؛ بعضیشان به آدرسهای ایرانی جواب نمیدهند یا با قطع اینترنت بینالملل از دسترس خارج میشوند. این صفحه نشان میدهد چطور آنها را از mirrorهای داخل ایران بگیرید.
همهی آدرسهای این صفحه در ۵ آبان ۱۴۰۵ از یک سرور داخل ایران و با همان پکیجهایی که SDKهای ابرووا لازم دارند بررسی شدهاند. این mirrorها را شرکتهای ایرانی دیگری اداره میکنند، نه ابرووا؛ پس ممکن است آدرسشان تغییر کند.
| پلتفرم | SDK ابرووا | وابستگیها، داخل ایران |
|---|---|---|
| Android | Abrova Center | mirror مِیوِن مایکت: پکیجهای Google و Maven Central و پلاگین Gradle اندروید |
| iOS | Abrova Center | لازم نیست: SDK وابستگی دیگری ندارد |
| Node.js، Next.js، CLI | Abrova Center | mirror npm رانفلر |
| Flutter | Abrova Center | mirror داخل ایران ندارد: pub.dev به آدرسهای ایرانی جواب نمیدهد (پایینتر) |
| Laravel / PHP | Abrova Center | mirror داخل ایران ندارد: Packagist امروز از ایران در دسترس است |
Android (Gradle)#
در settings.gradle، mirror ایرانی را پیش از Google و Maven Central بیاورید؛ هم برای پلاگینها و هم برای کتابخانهها:
pluginManagement {
repositories {
maven { url "https://maven.myket.ir" }
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositories {
maven { url "https://center.abrova.ir/api/packages/abrova/maven" }
maven { url "https://maven.myket.ir" }
google()
mavenCentral()
}
}Gradle مخزنها را به همین ترتیب امتحان میکند؛ پس google() و mavenCentral() فقط برای پکیجی به کار میروند که mirror ندارد.
خود Gradle برای هر نسخه یک بار از services.gradle.org دانلود میشود (distributionUrl در gradle/wrapper/gradle-wrapper.properties). آن فایل را روی سیستمتان نگه دارید، یا روی سروری که در اختیار دارید بگذارید و distributionUrl را به آن اشاره دهید.
iOS#
کار اضافهای لازم نیست: SDK آیاواس از Abrova Center نصب میشود و هر چه لازم دارد همراهش است. خطهای Swift Package Manager و CocoaPods را در SDK آیاواس ببینید.
Node.js، Next.js و CLI#
در فایل .npmrc پروژه، mirror ایرانی npm را برای همهی پکیجها و Abrova Center را برای پکیجهای ابرووا بگذارید:
registry=https://mirror-npm.runflare.com/ @abrova-trace:registry=https://center.abrova.ir/api/packages/abrova/npm/
سپس مثل همیشه نصب کنید (npm install، pnpm install یا yarn).
Flutter#
پکیج Flutter ابرووا از Abrova Center میآید. وابستگیهایش (http، path_provider، device_info_plus و چند پکیج دیگر) از pub.dev میآیند و pub.dev به آدرسهای ایرانی جواب نمیدهد. mirror برای pub داخل ایران پیدا نکردیم. راههایی که کار میکنند:
flutter pub getرا یک بار از اتصالی اجرا کنید که به pub.dev میرسد. پکیجها در pub cache میمانند و بیلدهای بعدی بدون pub.dev کار میکنند.pubspec.lockرا در git نگه دارید تا همهی سیستمها و CI همان نسخهها را از cache بگیرند.- یا
PUB_HOSTED_URL=https://pub.flutter-io.cnرا تنظیم کنید (mirror عمومی که جامعهی Flutter در چین اداره میکند). از ایران جواب میدهد، ولی خارج از ایران است؛ پس با قطع اینترنت بینالملل کار نمیکند.
Laravel و PHP#
پکیج ابرووا از Abrova Center میآید. وابستگیهایش (guzzlehttp/guzzle و illuminate/*) از Packagist میآیند که امروز از ایران جواب میدهد؛ mirror داخل ایران برای Packagist پیدا نکردیم. Composer هر چه دانلود کند در cache خودش نگه میدارد و composer.lock نسخهها را ثابت میکند.
وقتی اینترنت بینالملل قطع است#
- کار میکند: Abrova Center، mirrorهای مایکت و رانفلر، و هر چه از قبل در cache سیستمتان هست.
- کار نمیکند: pub.dev، Packagist، CocoaPods trunk، GitHub و
services.gradle.org.
فایلهای lock (pubspec.lock، package-lock.json، composer.lock، Package.resolved، Podfile.lock) را در git نگه دارید تا یک checkout تازه کمترین دانلود را لازم داشته باشد.