ابرووا
شروع رایگان
☰ فهرست مستندات · نصب داخل ایران

نصب داخل ایران

نصب SDKهای ابرووا تریس و وابستگی‌هایشان با mirrorهای ایرانی، تا بیلد وقتی اینترنت بین‌الملل کند یا قطع است هم کار کند.

AndroidiOSFlutterNode.jsPHPبه‌روزرسانی: ۵ آبان ۱۴۰۵

SDKهای ابرووا از Abrova Center نصب می‌شوند که داخل ایران است. هر SDK چند پکیج رایج دیگر هم لازم دارد (مثلاً AndroidX، OkHttp یا http برای Dart). این‌ها از مخزن‌های عمومی می‌آیند؛ بعضی‌شان به آدرس‌های ایرانی جواب نمی‌دهند یا با قطع اینترنت بین‌الملل از دسترس خارج می‌شوند. این صفحه نشان می‌دهد چطور آن‌ها را از mirrorهای داخل ایران بگیرید.

آزموده از داخل ایران.

همه‌ی آدرس‌های این صفحه در ۵ آبان ۱۴۰۵ از یک سرور داخل ایران و با همان پکیج‌هایی که SDKهای ابرووا لازم دارند بررسی شده‌اند. این mirrorها را شرکت‌های ایرانی دیگری اداره می‌کنند، نه ابرووا؛ پس ممکن است آدرسشان تغییر کند.

پلتفرمSDK ابروواوابستگی‌ها، داخل ایران
AndroidAbrova Centermirror مِیوِن مایکت: پکیج‌های Google و Maven Central و پلاگین Gradle اندروید
iOSAbrova Centerلازم نیست: SDK وابستگی دیگری ندارد
Node.js، Next.js، CLIAbrova Centermirror npm رانفلر
FlutterAbrova Centermirror داخل ایران ندارد: pub.dev به آدرس‌های ایرانی جواب نمی‌دهد (پایین‌تر)
Laravel / PHPAbrova Centermirror داخل ایران ندارد: Packagist امروز از ایران در دسترس است

Android (Gradle)#

در settings.gradle، mirror ایرانی را پیش از Google و Maven Central بیاورید؛ هم برای پلاگین‌ها و هم برای کتابخانه‌ها:

groovy
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 را برای پکیج‌های ابرووا بگذارید:

ini
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 تازه کمترین دانلود را لازم داشته باشد.

این صفحه مفید بود؟
گزارش مشکل