Requirements
Android SDK levels
Section titled “Android SDK levels”Core attribution module:
| Property | Value | Source |
|---|---|---|
| minSdk | 21 | attribution/build.gradle:13 |
| compileSdk | 34 | attribution/build.gradle:10 |
| targetSdk | 35 | attribution/build.gradle:14 |
Module-level minSdk values:
| Module | minSdk | Source |
|---|---|---|
| module-advertising | 21 | module-advertising/build.gradle:12 |
| module-androidid | 21 | module-androidid/build.gradle:12 |
| module-appsflyer | 21 | module-appsflyer/build.gradle:12 |
| module-huawei | 23 | module-huawei/build.gradle:12 |
| module-link | 21 | module-link/build.gradle:12 |
| module-meta | 21 | module-meta/build.gradle:12 |
| module-network | 21 | module-network/build.gradle:12 |
| module-phone | 21 | module-phone/build.gradle:12 |
| module-rustore | 23 | module-rustore/build.gradle:12 |
| module-status | 21 | module-status/build.gradle:12 |
| module-subscription | 21 | module-subscription/build.gradle:12 |
| module-tiktok | 21 | module-tiktok/build.gradle:12 |
Build toolchain
Section titled “Build toolchain”| Tool | Version | Source |
|---|---|---|
| Kotlin | 1.9.24 | build.gradle:3 |
| Android Gradle Plugin | 8.5.2 | build.gradle:5 |
| Google Services plugin | 4.3.15 | build.gradle:6 |
| Dokka | 1.9.0 | build.gradle:4 |
| nexus-publish plugin | 2.0.0 | build.gradle:7 |
JVM target
Section titled “JVM target”jvmVersion = "1.8"(build.gradle:83)sourceCompatibility/targetCompatibility=JavaVersion.VERSION_1_8(attribution/build.gradle:40-41)kotlinOptions { jvmTarget = jvmVersion }(attribution/build.gradle:44-46)
Gradle repositories
Section titled “Gradle repositories”Top-level build.gradle:28-38:
allprojects { repositories { google() mavenCentral() maven { url "https://jitpack.io" } maven { url = uri("https://artifactory-external.vkpartner.ru/artifactory/maven") } maven { url 'https://developer.huawei.com/repo/' } }}The https://developer.huawei.com/repo/ repository is required for module-huawei (build.gradle:36).
Transitive versions
Section titled “Transitive versions”com.android.installreferrer:installreferrer:2.2—attribution/build.gradle:63com.google.android.gms:play-services-ads-identifier:18.2.0—module-advertising/build.gradle:38com.android.billingclient:billing-ktx:7.0.0—module-subscription/build.gradle:38ru.rustore.sdk:installreferrer:6.1.0—module-rustore/build.gradle:37com.huawei.hms:ads-identifier:3.4.62.300,com.huawei.hms:ads-installreferrer:3.4.62.300—module-huawei/build.gradle:37-38
Required permissions
Section titled “Required permissions”The core attribution module declares the following in attribution/src/main/AndroidManifest.xml:4-7:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /><uses-permission android:name="android.permission.USE_EXACT_ALARM" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />A BOOT_COMPLETED receiver is registered at attribution/src/main/AndroidManifest.xml:10-17 (com.affise.attribution.background.AffiseBroadcastReceiver).
Module-level additions:
module-network/src/main/AndroidManifest.xml:3—android.permission.ACCESS_NETWORK_STATEmodule-phone/src/main/AndroidManifest.xml:3-4—android.permission.ACCESS_NETWORK_STATE,android.permission.READ_PHONE_STATE
The README states only INTERNET is required from the consumer’s manifest:
<manifest> <!-- ... --> <uses-permission android:name="android.permission.INTERNET"/></manifest>