Migrer vers le SDK Adapty Android v4.1
Le SDK Adapty Android 4.1 modifie la façon dont Adapty Attribution est activé et renomme les API d’attribution externe.
Les API renommées constituent une rupture complète. AdaptyAttributionSource est supprimé — il n’est pas déprécié, et il n’existe aucun typealias pour faire le pont. Le code qui compilait avec 4.0.x ne compilera plus sur 4.1 tant que vous n’aurez pas renommé chaque appel listé ci-dessous.
Référence rapide
| v4.0 | v4.1 |
|---|---|
| Attribution Adapty activée automatiquement | Attribution Adapty désactivée par défaut ; activez-la avec .withAdaptyAttributionEnabled(true) |
Adapty.updateAttribution(attribution, source) | Adapty.updateExternalAttribution(attribution, provider) |
AdaptyAttributionSource | AdaptyExternalAttributionProvider, avec une nouvelle valeur CUSTOM |
AdaptyProfile.appliedAttributionSources | AdaptyProfile.appliedExternalAttributionProviders |
Installation
Définissez la version adapty-bom sur 4.1.0 (ou ultérieure) et synchronisez le projet. Le BOM résout automatiquement les versions correspondantes de android-sdk et android-ui. Consultez Installer le SDK Adapty pour les déclarations de dépendances.
Si vous mettez à niveau depuis la version 4.0.0 ou 4.0.1, deux modifications de la version 4.0.2 s’appliquent également :
- Par défaut, Adapty utilise Google Play Billing Library 8 au lieu de 7.0.0.
restorePurchasesse termine avec succès même quand il n’y a rien à restaurer et renvoie le profil actuel, au lieu d’échouer avecNO_PURCHASES_TO_RESTORE. Voir Restaurer les achats.
L’attribution Adapty est désactivée par défaut
Dans les versions 4.0 et antérieures, le SDK enregistrait automatiquement les installations pour l’attribution Adapty. À partir de la version 4.1, cette fonctionnalité est désactivée par défaut : le SDK n’enregistre plus les installations, le listener défini avec setOnInstallationDetailsListener ne se déclenche jamais, et getCurrentInstallationStatus retourne AdaptyInstallationStatus.Determined.NotAvailable.
Si vous utilisez l’attribution Adapty, activez-la lors de l’activation du SDK :
val config = AdaptyConfig.Builder("PUBLIC_SDK_KEY")
+ .withAdaptyAttributionEnabled(true)
.build()
Adapty.activate(applicationContext, config)
Si vous n’utilisez pas Adapty Attribution, aucune modification n’est nécessaire.
API d’attribution externe renommées
updateAttribution → updateExternalAttribution
La méthode qui transmet les données d’attribution depuis un fournisseur externe (Adjust, AppsFlyer, Branch, Tenjin, ou un fournisseur personnalisé) est renommée, et son paramètre source est renommé en provider :
- Adapty.updateAttribution(attribution, AdaptyAttributionSource.ADJUST) { error -> /* handle the error */ }
+ Adapty.updateExternalAttribution(attribution, AdaptyExternalAttributionProvider.ADJUST) { error -> /* handle the error */ }
Les deux surcharges sont conservées : attribution peut être un Map<String, Any> ou un String JSON.
Le callback se déclenche dès que le backend accepte les données pour un traitement asynchrone. Un résultat positif ne signifie pas que les données ont déjà été appliquées au profil.
AdaptyAttributionSource → AdaptyExternalAttributionProvider
Le type est renommé, et les valeurs prédéfinies conservent leurs noms : APPLE_ADS, ADJUST, APPSFLYER, BRANCH, et TENJIN. Pour tout autre fournisseur, construisez-en un à partir d’une chaîne : AdaptyExternalAttributionProvider("your_provider").
La version 4.1 ajoute également une valeur prédéfinie CUSTOM pour les fournisseurs qu’Adapty n’intègre pas directement. Dans la version 4.0, cette même valeur n’était disponible que sous la forme de la chaîne "custom".
AdaptyProfile.appliedAttributionSources → appliedExternalAttributionProviders
La propriété du profil qui liste les fournisseurs d’attribution appliqués au profil est renommée. Le type de ses éléments change en conséquence :
- if (profile.appliedAttributionSources.contains(AdaptyAttributionSource.APPLE_ADS)) {
+ if (profile.appliedExternalAttributionProviders.contains(AdaptyExternalAttributionProvider.APPLE_ADS)) {
// Apple Ads attribution has been applied
}