
Store Configuration
Connecting App Store
Here’s what you had in Glassfy:
- App-Specific Shared Secret: Simply copy this value from the Apple Shared Secret field in the App Store Configuration section in Glassfy. Check the screenshot above. Alternatively, here’s a more detailed guide on how to obtain this.
- App Store ID: You’ll find your App Store ID in the URL of your App Store Connect account. For example, if your URL is something like https://apps.apple.com/us/app/example-app/id123456789, then 123456789 is your app’s Apple ID.
Connecting Google Play Console
Here’s what you saw at Glassfy:
- Android Package Name: This is usually the applicationID in your app-level build.gradle file. You can either copy it from there or simply copy the Android Package Name field in your settings from Glassfy.
- Service Account Credentials JSON: Copy the value from the Google JSON Key in the screenshot above or simply attach the same file you used in Glassfy. Here’s more on how you can get Google Play Service Account Key.
🚧 Can’t find the fields? If you skipped filling in these details during the onboarding, navigate to the Settings -> Stores on your Qonversion dashboard and fill out the empty fields.
Offerings, Products, and Entitlements
Once all the data is filled in and the stores are set up, it’s time to configure Offerings, Products, and Entitlements. Here’s how we refer to the same things differently:| Glassfy | Qonversion |
|---|---|
| Permissions | Entitlements |
| SKUs | Products |
| Offerings | Offerings |
Entitlements (Permissions)
Let’s start with Entitlements. Similar to how you set up Permissions in Glassfy, you need to set up Entitlements in Qonversion. Here’s how it was done in Glassfy:

Products (SKUs)
Next, you need to create Products similar to how you created SKUs in Glassfy:

- Fill in the product details.

- Qonversion Product ID – create your unique product identifier in Qonversion that corresponds to a unique product on the Apple App Store and Google Play Store. Qonversion SDK will use it to make purchases.
- AppStore Product ID – product identifier on Apple App Store. Learn more on how to create subscriptions on iOS.
- Google Play Product ID – product identifier on Google Play Console. Learn more on how to set up Android in-app products .
- Google Play Base Plan ID - identifier of the base plan for Google Play Product. This is used for subscription products. If you’re creating an in-app, leave this field empty for in-apps. In Qonversion, you will set up different products for the different base plans of the same product.
- Associated Entitlements - choose the entitlements that should be granted once this product is purchased.
Offerings
Here’s what your Offering setup looked like at Glassfy:
Install the SDK
Check out the links below for the SDK you need and follow the steps provided: → iOS SDK→ Android SDK → Flutter SDK → React Native SDK → Unity SDK → Cordova Plugin → Capacitor Plugin → Web → Kids Mode Qonversion SDKs Read more about Installing the SDKs.
When you’re done with the setup, it’s time to get into the code!
Launch SDK
Firstly, you need to initialize the SDK. Here’s how you did it in Glassfy:Flutter
React Native
Capacitor
Flutter
React Native
Unity
Cordova
Capacitor
Displaying products
Glassfy:Flutter
React Native
Capacitor
Qonversion:
Flutter
React Native
Unity
Cordova
Capacitor
Making purchases
Glassfy:Flutter
React Native
Capacitor
Qonversion:
Flutter
React Native
Unity
Cordova
Capacitor
product” here is the Qonversion Product you created earlier.
Subscription status
To check the subscription status in Qonversion, you will use Entitlements. In Glassfy, you used Permissions. Glassfy:Flutter
React Native
Capacitor
Flutter
React Native
Unity
Cordova
Capacitor
Authorization system
📘 Cross-device and cross-platform access Set up this section only if you need cross-device and cross-platform access and your project includes an authorization system.Qonversion lets you identify your signed-in users and unlock premium access across multiple devices. Use the
identify() method to link a user to your signed-in subscriber. Call this method every time you want to use User Identity. For example, when a user logs in.User Identity provides a convenient way of managing premium access of your existing subscribers, including the following cases:
- A user reinstalls your app for any reason. Using the same User ID allows you to provide premium access linked to previously purchased products.
- A user logs in on several devices. You can provide premium access based on a subscription purchased on one of his devices.
- A user logs in on iOS and Android versions of your app. You can provide premium access based on a subscription purchased on one of the platforms.
Logging in
When a user logs into his account, callidentify().
Flutter
React Native
Unity
Cordova
Capacitor
🚧 Use the unique user ID stored in your database Always use unique user ID values. Otherwise, a user can get matched to another user’s entitlements status.To check entitlements for identified users, you can call the
checkEntitlements function, which we discussed above.
Logging out
You need to call thelogout() method to handle entitlements for an unauthorized user.Call this method when a user logs out within your app:
Flutter
React Native
Unity
Cordova
Capacitor
identify() method again.
User-base migration
Those steps have to be done to keep the system working smoothly for your current user base. The necessity of steps depends on the complexity of your system. The simplest system is represented by a single platform infrastructure (Apple, Google, or Stripe). The complex one includes a few platforms with authorization system, your backend infrastructure, and WebHooks handler.Client-side migration
Follow these steps to sync user status and retrieve the latest data from Google and Apple on your current device. Call thesyncHistoricalData() method right after Qonversion SDK initialization to synchronize all the device-related data and ensure that none of the entitlements has been missed.
⚠️ Qonversion Android SDK 9.+ limitation
For Qonversion Android SDK 9.+, the method syncHistoricalData() has been removed because of a limitation in Google Play Billing Library 8, which prevents the retrieval of historical purchases
User-database migration
Once you have the app version with Qonversion SDK up and running, it’s time to proceed to the server-side migration.- Prepare files with AppStore with Base64 encoded receipt data or Google Play with purchase tokens.
If you do not have receipt data or purchase tokens on your side but are already running your subscription management with a third-party vendor, you should ask the vendor’s support team for the required data file. - Then simply share the files with us using our support chat and provide CSV files.