usercentrics_sdk 2.5.1 usercentrics_sdk: ^2.5.1 copied to clipboard
The Usercentrics Apps SDK is a Consent Management Platform framework that ensures legal compliance for different legal frameworks.
Usercentrics #
Overview #
The Usercentrics Apps SDK is a Consent Management Platform framework for mobile, TV, Web, and Unity applications, that enables the collection, documentation, and management of your user's privacy settings, in order to ensure legal compliance for different legal frameworks around the world.
Supported Legal Frameworks #
- 🇪🇺 GDPR - European Union's General Data Protection Regulation
- 🇺🇸 CCPA - California's Consumer Privacy Act
- 🇧🇷 LGPD - Brazil’s Lei Geral de Proteção de Dados
- 🌎 TCF 2.0 - Transparency & Consent Framework 2.0
Supported Platforms #
Android | iOS | Web | tvOS | MacOS |
---|---|---|---|---|
✅ | ✅ | ❌ | ❌ | ❌ |
Requirements #
- Dart 2.12 or higher
- Flutter 1.20 or higher
- Android 4.1 (API 16) or higher with Kotlin 1.5 or higher
- iOS 11 or higher
To meet the requirements:
Android with Kotlin version lower than 1.5
If you have an incompatible Kotlin version you may see the following error when you run app on Android:
e: Incompatible classes were found in dependencies. Remove them from the classpath or use '-Xskip-metadata-version-check' to suppress errors
This error is easy to solve, you only need to increase the version that is usually in the android/build.gradle
file. Use a recent stable Kotlin version, for example: 1.5.31
.
Android version lower than 5.0 (API 21)
If you support an Android version lower than 5.0 (API 21) and you don't have the multidex enabled in your project, you may see the following error when you run your app on Android:
D8: Cannot fit requested classes in a single dex file (# methods: 66055 > 65536)
You can change the minimum version of your application to 5.0 (API 21). That configuration is usually in the android/app/build.gradle
file. Make sure that minSdkVersion
is 21
or higher.
Although Android 5.0 version already supports 99% of all devices, if you still want to have support for Android 4.1 (API 16) you have to do the following:
- Add the multidex library to your application dependencies that is usually in the
android/app/build.gradle
file.
implementation "androidx.multidex:multidex:2.0.1"
- Enable the option in the application build
defaultConfig
. It is usually in the sameandroid/app/build.gradle
file.
multiDexEnabled true
- Make your application class initialize multidex. There are several options to do that, in Flutter the easiest way is to add it to the manifest. The manifest is usually located at
android/app/src/main/AndroidManifest.xml
.
android:name="androidx.multidex.MultiDexApplication"
iOS version lower than 11
If you have a iOS target version lower than 11 or you have no version at all (it defaults to version 9) you may see the following error when you run your app on iOS:
[!] Automatically assigning platform `iOS` with version `9.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
This error is easy to solve, you have to do the following:
- Define or increase the version of your Podfile at least to version 11. It is usually located at
ios/Podfile
.
platform :ios, '11.0'
- Run
flutter pub get
again and open the iOS project using Xcode. It is usually located atios/Runner.xcworkspace
. Now, you have to select theRunner
project and change theDeployment Target
to the same version.
Integration #
Continue to our documentation for a step by step integration guide.
Example #
See the example directory for a complete sample app using Usercentrics.
Testing #
You can use your own Usercentrics to test the integration or any other functionality.
- Implement your own
UsercentricsPlatform
manually or using a mock library such asmockito
:
class FakeUsercentrics extends UsercentricsPlatform {
...
}
- Inject your instance in the testing
delegatePackingProperty
variable:
testWidgets('Initializes Usercentrics', (WidgetTester tester) async {
final usercentrics = FakeUsercentrics();
Usercentrics.delegatePackingProperty = usercentrics;
await tester.pumpWidget(const MyApp());
expect(usercentrics.initializeCount, 1);
});
- Clear the instance after the test in order to prevent the tests from interfering with each other:
tearDown(() {
Usercentrics.delegatePackingProperty = null;
});
Get an Account #
First step to get started with our SDK, is to create a Usercentrics Account, get started with a free account or request a quote for your organization.