Abrova
☰ Docs menu · Installing inside Iran

Installing inside Iran

Install the Abrova Trace SDKs and their dependencies with Iranian package mirrors, so builds keep working when the international internet is slow or cut.

AndroidiOSFlutterNode.jsPHPLast updated: 27 Oct 2026

The Abrova SDKs install from Abrova Center, which is inside Iran. Each SDK also needs a few common packages (for example AndroidX, OkHttp or http for Dart). Those come from the public registries, and some of them refuse Iranian addresses or stop answering when the international internet is cut. This page shows how to get them from mirrors inside Iran.

Tested from Iran.

Every address on this page was checked from a server inside Iran on 27 October 2026, with the exact packages the Abrova SDKs need. The mirrors are run by other Iranian companies, not by Abrova, so their addresses can change.

PlatformAbrova SDKIts dependencies, inside Iran
AndroidAbrova CenterMyket Maven mirror: Google and Maven Central packages, and the Android Gradle plugin
iOSAbrova CenterNone needed: the SDK has no other dependencies
Node.js, Next.js, CLIAbrova CenterRunflare npm mirror
FlutterAbrova CenterNo mirror inside Iran: pub.dev refuses Iranian addresses (see below)
Laravel / PHPAbrova CenterNo mirror inside Iran: Packagist works from Iran today

Android (Gradle)#

In settings.gradle, list the Iranian mirror before Google and Maven Central, for both plugins and libraries:

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 tries the repositories in this order, so google() and mavenCentral() are only used for a package the mirror does not have.

Gradle itself is downloaded once per version from services.gradle.org (the distributionUrl in gradle/wrapper/gradle-wrapper.properties). Keep that download on your machine, or put the file on a server you control and point distributionUrl at it.

iOS#

Nothing extra: the iOS SDK installs from Abrova Center and brings everything it needs. See iOS SDK for the Swift Package Manager and CocoaPods lines.

Node.js, Next.js and the CLI#

In the project's .npmrc, use the Iranian npm mirror for everything and Abrova Center for the Abrova packages:

ini
registry=https://mirror-npm.runflare.com/
@abrova-trace:registry=https://center.abrova.ir/api/packages/abrova/npm/

Then install as usual (npm install, pnpm install or yarn).

Flutter#

The Abrova Flutter package comes from Abrova Center. Its dependencies (http, path_provider, device_info_plus and a few more) come from pub.dev, and pub.dev refuses Iranian addresses. We found no pub mirror inside Iran. What works:

  • Run flutter pub get once through a connection that reaches pub.dev. The packages stay in your pub cache, and later builds work without pub.dev.
  • Commit pubspec.lock, so every machine and your CI resolve the same versions from that cache.
  • Or set PUB_HOSTED_URL=https://pub.flutter-io.cn (a public mirror run by the Flutter community in China). It answers from Iran, but it is outside Iran, so it stops working when the international internet is cut.

Laravel and PHP#

The Abrova package comes from Abrova Center. Its dependencies (guzzlehttp/guzzle, illuminate/*) come from Packagist, which answers from Iran today; we found no Packagist mirror inside Iran. Composer keeps what it downloads in its cache, and composer.lock pins the versions.

When the international internet is cut#

  • Keeps working: Abrova Center, the Myket and Runflare mirrors, and everything already in your local caches.
  • Stops: pub.dev, Packagist, CocoaPods trunk, GitHub and services.gradle.org.

Keep your lock files (pubspec.lock, package-lock.json, composer.lock, Package.resolved, Podfile.lock) in git, so a fresh checkout needs as few downloads as possible.

Was this page helpful?
Report a problem