Upgrading version
Increase the dependency version in your prodspec.yaml file to upgrade your Qonversion SDK to the latestInitialization
Qonversion Flutter SDK 5 contains significant changes in how the library is initialized. We are moving from a static class approach to an instance-based one. Before, you initialized Qonversion using thelaunch call:
QonversionConfig object using QonversionConfigBuilder and provide it to the initialization method as follows:
observeMode flag to the launch call, you should provide a concrete value from the QLaunchMode enum, depending on which mode you use Qonversion. Also, we’ve renamed our modes to make them more transparent for users:
- “Observe” mode becomes “Analytics” mode,
- “Infrastructure” mode becomes “Subscription Management” mode.
Qonversion.setDebugMode() for testing purposes, you should now call the setEnvironment(QEnvironment.sandbox) method of the QonversionConfigBuilder.
As no launch method is available anymore, you won’t get QLaunchResult as a result. The good news is that there are analogues for all the fields you might have been using from there:
- for
uid, calluserInfo()and get theQUser.qonversionIdfrom the result, - for
productscallproducts(), - for
offeringscallofferings(), - for
permissions, callcheckEntitlements().
Entitlements
We are on the way to renaming permissions to entitlements as this naming suits more what it is used for. So, the following objects and methods were renamed in this release:| Version <4 | Version 4+ |
|---|---|
| QPermission | QEntitlement |
| QProductRenewState | QEntitlementRenewState |
| QPermissionSource | QEntitlementSource |
| QPermissionsCacheLifetime | QEntitlementsCacheLifetime |
| checkPermissions | checkEntitlements |
| updatedPurchasesStream | updatedEntitlementsStream |
QEntitlement class contains the same information as the QPermission with a renaming of the permissionId field - now it’s named simply id.
- There is no
setPermissionsCacheLifetimemethod in Qonversion. You should provideQEntitlementsCacheLifetimetoQonversionConfigBuilderduring the initialization using thesetEntitlementsCacheLifetimemethod.
Automation changes
We’ve also changed the way theAutomations is used. As in Qonversion, you should use Automations via the shared instance. On the first access, it will be initialized and returned. Then the initialized instance will be used.
You should access the shared instance of Automations strictly after you initialize Qonversion, else an exception will be thrown.
Qonversion to Automations, so if you were using the following methods:
setNotificationsToken,handleNotification,getNotificationCustomPayload, make sure to make calls from the Automations instance instead of the Qonversion one.
Rest of the changes
Along with the changes described above, there are several technical improvements and other changes in the new major release:- all the internal classes were moved to the
internalpackage, and DTO classes were moved to thedtopackage to make the library file structure more readable; - the deprecated methods
resetUserandsetUserIdwere removed.resetUserwas deprecated for a long time, and it did nothing, so there is nothing to replace this call with, remove the call if you were still using it for some reason.setUserIdshould be replaced with thesetPropertycall withQUserProperties.customUserIdparameter; - added the new method
userInfo, which returns the information about the current Qonversion user. Now it contains internal Qonversion and identity identifiers. The user info may be extended in future releases; - added new enum values -
QOfferingTag.UnknownandQTrialDuration.Unknown, which are used when parsing fails; facebookAttributionandadvertisingIdvalues were added to theQUserPropertyenum;- native modules’ error codes were refactored - now clear textual error codes are provided.
- the following methods and classes renaming took place:
| Old name | New name |
|---|---|
addAttributionData | attribution |
setAdvertisingID | collectAdvertisingId |
setAppleSearchAdsAttributionEnabled | collectAppleSearchAdsAttribution |
ProrationMode | QProrationMode |
Android 4.+ migration guide React Native 4.+ migration guide