---
title: "Migrer le SDK Flutter Adapty vers v3.0"
description: "Migrez vers le SDK Flutter Adapty v3.0 pour de meilleures performances et de nouvelles fonctionnalités de monétisation."
---

Le SDK Adapty v3.0 apporte la prise en charge du nouveau [Adapty Paywall Builder](adapty-paywall-builder), la nouvelle version de l'outil no-code convivial pour créer des paywalls. Grâce à sa flexibilité maximale et à ses riches capacités de design, vos paywalls deviendront plus efficaces et plus rentables.

:::info

Veuillez noter que la bibliothèque AdaptyUI est dépréciée et fait désormais partie intégrante du SDK Adapty.

:::

## Supprimer le SDK AdaptyUI \{#remove-adaptyui-sdk\}

1. AdaptyUI devient un module du SDK Adapty. Supprimez donc `adapty_ui_flutter` de votre fichier `pubspec.yaml` :

   ```diff showLineNumbers
   dependencies:
   + adapty_flutter: ^3.2.1
   - adapty_flutter: ^2.10.3
   - adapty_ui_flutter: ^2.1.3
   ```

2. Exécutez :

   ```bash showLineNumbers title="Bash"
   flutter pub get
   ```

## Configurer les SDK Adapty \{#configure-adapty-sdks\}

Auparavant, vous deviez utiliser les fichiers `Adapty-Info.plist` et `AndroidManifest.xml` pour configurer le SDK Adapty.

Désormais, il n'est plus nécessaire d'utiliser des fichiers supplémentaires. Vous pouvez fournir tous les paramètres requis directement lors de l'activation.

Il vous suffit de configurer le SDK Adapty une seule fois, généralement au démarrage du cycle de vie de votre application.

### Activer le module Adapty du SDK Adapty \{#activate-adapty-module-of-adapty-sdk\}

1. Supprimez l'import du SDK AdaptyUI de votre application comme suit :

   ```diff showLineNumbers
   import 'package:adapty_flutter/adapty_flutter.dart';
   - import 'package:adapty_ui_flutter/adapty_ui_flutter.dart';
   ```

2. Mettez à jour l'activation du SDK Adapty comme ceci :

   ```diff showLineNumbers
   try {
   -	Adapty().activate();  
   +    await Adapty().activate(
   +        configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
   +         ..withLogLevel(AdaptyLogLevel.debug)
   +         ..withObserverMode(false)
   +         ..withCustomerUserId(null)
   +         ..withIpAddressCollectionDisabled(false)
   +         ..withIdfaCollectionDisabled(false),
   +   );
   } catch (e) {
       // handle the error
   }
   ```

Paramètres :

| Paramètre                           | Présence | Description                                                  |
| ----------------------------------- | -------- | ------------------------------------------------------------ |
| **PUBLIC_SDK_KEY**                  | requis | La clé que vous pouvez trouver dans le champ **Public SDK key** des paramètres de votre application dans Adapty : [**App settings**-> onglet **General** -> sous-section **API keys**](https://app.adapty.io/settings/general) |
| **withLogLevel**                    | optionnel | Adapty enregistre les erreurs et d'autres informations essentielles pour vous donner une vue sur le fonctionnement de votre application. Les niveaux disponibles sont les suivants :<ul><li> error : seules les erreurs seront enregistrées.</li><li> warn : les erreurs et les messages du SDK qui ne causent pas d'erreurs critiques mais méritent attention seront enregistrés.</li><li> info : les erreurs, avertissements et messages d'information importants, comme ceux qui tracent le cycle de vie des différents modules, seront enregistrés.</li><li> verbose : toute information supplémentaire pouvant être utile lors du débogage, comme les appels de fonctions, les requêtes API, etc., sera enregistrée.</li></ul> |
| **withObserverMode**                | optionnel | <p>Une valeur booléenne contrôlant le [mode Observer](observer-vs-full-mode). Activez-le si vous gérez vous-même les achats et le statut des abonnements, et utilisez Adapty uniquement pour envoyer des événements d'abonnement et des données analytiques.</p><p>La valeur par défaut est `false`.</p><p></p><p>🚧 En mode Observer, le SDK Adapty ne fermera aucune transaction. Assurez-vous donc de les gérer vous-même.</p> |
| **withCustomerUserId**              | optionnel | Un identifiant de l'utilisateur dans votre système. Nous l'envoyons dans les événements d'abonnement et d'analyse pour attribuer les événements au bon profil. Vous pouvez également retrouver vos utilisateurs par `customerUserId` dans le menu [**Profiles and Segments**](https://app.adapty.io/profiles/users). |
| **withIdfaCollectionDisabled**      | optionnel | <p>Définissez à `true` pour désactiver la collecte et le partage de l'IDFA.</p><p>le partage de l'adresse IP de l'utilisateur.</p><p>La valeur par défaut est `false`.</p><p>Pour plus de détails sur la collecte de l'IDFA, consultez la section [Intégration Analytics](analytics-integration#disable-collection-of-advertising-identifiers).</p> |
| **withIpAddressCollectionDisabled** | optionnel | <p>Définissez à `true` pour désactiver la collecte et le partage de l'adresse IP de l'utilisateur.</p><p>La valeur par défaut est `false`.</p> |

### Activer le module AdaptyUI du SDK Adapty \{#activate-adaptyui-module-of-adapty-sdk\}

Vous devez configurer le module AdaptyUI uniquement si vous prévoyez d'utiliser le [Paywall Builder](adapty-paywall-builder) :

```dart showLineNumbers title="Dart"
try {
    final mediaCache = AdaptyUIMediaCacheConfiguration(
        memoryStorageTotalCostLimit: 100 * 1024 * 1024, // 100MB
        memoryStorageCountLimit: 2147483647, // 2^31 - 1, max int value in Dart
        diskStorageSizeLimit: 100 * 1024 * 1024, // 100MB
    );

    await AdaptyUI().activate(
        configuration: AdaptyUIConfiguration(mediaCache: mediaCache),
        observer: <AdaptyUIObserver Implementation>,
    );
} catch (e) {
    // handle the error
}
```

Notez que la configuration d'AdaptyUI est optionnelle : vous pouvez activer le module AdaptyUI sans sa configuration. Cependant, si vous utilisez la configuration, tous les paramètres y sont requis.

Paramètres :

| Paramètre                       | Présence | Description                                                  |
| :------------------------------ | :------- | :----------------------------------------------------------- |
| **memoryStorageTotalCostLimit** | requis | Limite de coût total du stockage en octets.                    |
| **memoryStorageCountLimit**     | requis | Limite du nombre d'éléments dans le stockage en mémoire.                  |
| **diskStorageSizeLimit**        | requis | Limite de taille des fichiers sur le disque du stockage en octets. 0 signifie aucune limite. |