# SDK Dependency Matrix

This document is the versioned memory of which external libraries each Yovo SDK
release depends on. Add a new SDK section for every release branch that changes
native dependencies, minimum SDK targets, store capabilities, or billing support.

`clients/unity-sdk/Assets/_Yovo/Config/YovoDependencyLock.json` remains the
machine-checkable source for Unity dependency validation. This document is the
human release ledger shown in Dashboard.

## Hard Rules

- Shared libraries must stay on one version across all native SDK repositories,
  Unity SDK dependency XML files, generated Unity projects, and game builds.
- Do not update Firebase, Billing, Google Mobile Ads, AndroidX, Unity Ads,
  Kidoz, IronSource/LevelPlay, Huawei, Amazon, or AppCoins dependencies in only
  one game or one market fork.
- Android export scripts must run tests first and abort without copying an AAR
  into Unity when tests fail.
- Aptoide currently supports one-time AppCoins products only. Subscriptions are
  not supported.
- Amazon and Huawei production builds currently do not support purchases. Treat
  any historical IAP classes or dependencies there as disabled unless a release
  explicitly says otherwise.

## 7.1.4-S

Release branch: `7.1.4-S`  
Unity SDK dependency lock: `7.1.4-20260717.1`

### Market Capabilities

| Market/profile | Ads | One-time purchases | Subscriptions | Production notes |
| --- | --- | --- | --- | --- |
| Google Play | AdMob, Unity Ads, Kidoz, IronSource/LevelPlay, cross-promo | Supported through Google Billing | Supported through Google Billing | Full Android dependency set. |
| Aptoide | AdMob, Unity Ads, Kidoz, cross-promo | Supported through AppCoins | Not supported | Do not configure subscriptions until AppCoins subscription support is implemented. |
| Amazon | AdMob, Unity Ads, Kidoz, cross-promo | Not supported | Not supported | Amazon IAP classes may exist historically, but production builds must treat purchases as unavailable. |
| Amazon Kids | AdMob, Kidoz, cross-promo | Not supported | Not supported | Release AAR must not include Unity Ads, IronSource/LevelPlay, Tapjoy, MoPub, Inneractive, Appnext, Amplitude, Flurry, or Branch. |
| Huawei | Huawei Ads, Unity Ads, Kidoz, cross-promo | Not supported | Not supported | Huawei IAP dependency/classes may exist historically, but production AppGallery builds currently do not enable purchases. |
| iOS | AdMob, Unity Ads, Kidoz, IronSource/LevelPlay surface, cross-promo | Supported through StoreKit | Supported through StoreKit | Google Mobile Ads and UMP are linked inside `YovoSDK.framework`; do not add duplicate GMA/UMP pods from Unity. |

### Native Artifact Baseline

| SDK/profile | Artifact | compileSdk | minSdk | Java / iOS target | Store dependency |
| --- | --- | --- | --- | --- | --- |
| `clients/android-sdk` | `YovoAds 7.1.4-S.aar` | 36 | 24 | Java 11 | `com.android.billingclient:billing:9.1.0` |
| `clients/aptoide-sdk` | `YovoAdsAptoide 7.1.4-S.aar` | 36 | 24 | Java 11 | `io.catappult:android-appcoins-billing:0.10.2.0` |
| `clients/amazon-sdk` | `YovoAdsAmazon 7.1.4-S.aar` | 36 | 24 | Java 11 | `com.amazon.device:amazon-appstore-sdk:3.0.9`; production purchases disabled |
| `clients/amazon-sdk` `amazonKids` flavor | `YovoAdsAmazonKids 7.1.4-S.aar` | 36 | 24 | Java 11 | Same Amazon SDK; production purchases disabled |
| `clients/huawei-sdk` | `YovoAdsHuawei 7.1.4-S.aar` | 36 | 24 | Java 11 | Huawei IAP dependency present, production purchases disabled |
| `clients/apple-sdk` | `YovoSDK.framework` | n/a | n/a | iOS 15.1 | StoreKit |

### Android Dependencies

| Dependency | Version | Markets/profiles |
| --- | --- | --- |
| Google Mobile Ads Android, `com.google.android.gms:play-services-ads` | 25.4.0 | Google Play, Amazon, Amazon Kids, Aptoide, Unity resolver |
| Google UMP Android, `com.google.android.ump:user-messaging-platform` | 4.0.0 | Google Play, Amazon, Amazon Kids, Aptoide, Unity resolver |
| Unity Ads Android, `com.unity3d.ads:unity-ads` | 4.19.0 | Google Play, Aptoide, Huawei, normal Amazon; excluded from Amazon Kids |
| IronSource / LevelPlay Android, `com.unity3d.ads-mediation:mediation-sdk` | 9.5.0 | Unity resolver / Google Play game builds; excluded from Amazon Kids |
| Kidoz Android, `net.kidoz.sdk:kidoz-android-native` | 10.1.9 | All Android profiles |
| Huawei Ads, `com.huawei.hms:ads-lite` | 13.4.86.310 | Huawei only |
| Huawei Install Referrer, `com.huawei.hms:ads-installreferrer` | 3.4.86.310 | Huawei only |
| Huawei AGConnect, `com.huawei.agconnect:agconnect-core` | 1.9.6.300 | Huawei only |
| Huawei IAP, `com.huawei.hms:iap` | 6.16.6.305 | Huawei dependency present, production purchases disabled |
| Google Billing, `com.android.billingclient:billing` | 9.1.0 | Google Play only |
| Google Play Install Referrer, `com.android.installreferrer:installreferrer` | 2.2 | Google Play attribution |
| Google Play App Set, `com.google.android.gms:play-services-appset` | 16.1.0 | Unity resolver / Google Play support |
| Google Play Tasks, `com.google.android.gms:play-services-tasks` | 18.4.1 | Unity resolver / Google Play support |
| Google Play Asset Delivery, `com.google.android.play:asset-delivery` | 2.3.0 | Unity resolver / Google Play support |
| Google Play In-App Update, `com.google.android.play:app-update` | 2.1.0 | Unity resolver / Google Play support |
| AppCoins Billing, `io.catappult:android-appcoins-billing` | 0.10.2.0 | Aptoide one-time products only |
| Amazon Appstore SDK, `com.amazon.device:amazon-appstore-sdk` | 3.0.9 | Amazon and Amazon Kids |
| AndroidX Fragment, `androidx.fragment:fragment` | 1.8.9 | Unity resolver, pins away from outdated transitive versions |
| AndroidX ConstraintLayout, `androidx.constraintlayout:constraintlayout` | 2.2.1 | Android native SDKs and Unity resolver |
| AndroidX Lifecycle Process | 2.6.2 | Unity resolver / Google Mobile Ads dependencies |
| Android multidex | 2.0.1 | Android native SDKs |
| EventBus, `org.greenrobot:eventbus` | 3.3.1 | Android native SDKs |
| Firebase Android Analytics, `com.google.firebase:firebase-analytics` | 23.0.0 | Unity Android builds that include Firebase |
| Firebase Android Common, `com.google.firebase:firebase-common` | 22.0.1 | Unity Android builds that include Firebase |
| Firebase Android Auth, `com.google.firebase:firebase-auth` | 24.0.1 | Unity Android builds that include Firebase |
| Firebase Unity Android App, `com.google.firebase:firebase-app-unity` | 13.6.0 | Unity Android builds that include Firebase |
| Firebase Unity Android Auth, `com.google.firebase:firebase-auth-unity` | 13.6.0 | Unity Android builds that include Firebase |

### Unity Plugin Dependencies

| Dependency | Version | Notes |
| --- | --- | --- |
| Google Mobile Ads Unity Plugin | 10.6.0 | Unity C# bridge/settings/resolver layer. Native Android/iOS SDK versions are listed separately above/below. |
| External Dependency Manager for Unity | 1.2.186 | Shared resolver shipped with Google Mobile Ads and Firebase Unity packages. |

### iOS Dependencies

| Dependency | Version | Notes |
| --- | --- | --- |
| iOS deployment target for `clients/apple-sdk` | 15.1 | Generated game builds must not set a lower framework target. |
| Google Mobile Ads iOS | 10.14.0 | Linked into `YovoSDK.framework`; do not add `Google-Mobile-Ads-SDK` as a duplicate CocoaPod in Unity. |
| Google UMP iOS | Package-resolved with Apple SDK project | Consent layer used by iOS AdMob integration. |
| UnityAds iOS pod | 4.19.0 | Declared by Unity dependency XML. |
| KidozSDK iOS pod | 10.1.5 | Declared by Unity dependency XML. |
| IronSourceSDK iOS pod | 9.5.0.0 | Declared by Unity dependency XML. |
| Firebase iOS Core, `Firebase/Core` | 12.6.0 | Declared by Firebase Unity dependency XML. |
| Firebase iOS Auth, `Firebase/Auth` | 12.6.0 | Declared by Firebase Unity dependency XML. |

### Export And Validation

Android:

```bash
clients/android-sdk/scripts/export-unity-aar.sh
clients/amazon-sdk/scripts/export-unity-aar.sh
clients/amazon-sdk/scripts/export-unity-aar-amazon-kids.sh
clients/aptoide-sdk/scripts/export-unity-aar.sh
clients/huawei-sdk/scripts/export-unity-aar.sh
```

iOS:

```bash
clients/apple-sdk/scripts/export-unity-framework.sh
```

After a native export, validate the Unity SDK and the target game dependency
lock before release.
