React Native — Configuring
Learn how to import Adapty iOS SDK in your app, configure it, and set up logging
To initialize Adapty SDK, import adapty
and call activate
in your core component such as App.tsx
. Preferably, wrap this function with a useEffect
hook to prevent unnecessary calls.
// src/App.tsx
import { adapty } from 'react-native-adapty';
const App = () => {
// ...
useEffect(() => {
adapty.activate('PUBLIC_SDK_KEY');
}, []);
// ...
}
There are a number of optional parameters, that you can pass during initialization:
adapty.activate('PUBLIC_SDK_KEY', {
observerMode: false,
customerUserId: 'YOUR_USER_ID',
logLevel: 'error',
});
import { LogLevel } from 'react-native-adapty';
adapty.activate('PUBLIC_SDK_KEY', {
observerMode: false,
customerUserId: 'YOUR_USER_ID',
logLevel: LogLevel.ERROR,
});
- Public SDK key (required): found in your app settings in Adapty Dashboard App settings > General.
- Observer mode (optional): a boolean value controlling Observer mode. Turn it on if you handle purchases and subscription status yourself and use Adapty for sending subscription events and analytics.
- Customer user ID (optional): an identifier of the user in your system. We send it in subscription and analytical events, to attribute events to the right profile. You can also find customers by
customerUserId
in the Profiles section.
If you don't have a user ID at the time of Adapty initialization, you can set it later usingadapty.identify()
method. Read more in the Identifying Users section. - Log level (optional): a string parameter, that sets Adapty logs errors and other important information to help you understand what is going on.
Make sure you use the Public SDK key for Adapty initialization, the Secret key should be used for server-side API only.
SDK keys are unique for every app, so if you have multiple apps make sure you choose the right one.
Logging
Adapty logs errors and other important information to help you understand what is going on. There are four levels available:
error
: only errors will be loggedwarn
: messages from the SDK that do not cause critical errors, but are worth paying attention toinfo
: various information messages, such as those that log the lifecycle of various modulesverbose
: any additional information that may be useful during debugging, such as function calls, API queries, etc.
You can set logLevel
at any time in the application's lifespan, but we recommend that you do this before configuring Adapty.
adapty.setLogLevel('verbose');
For both activate
and setLogLevel
methods TypeScript would validate the string that you pass as an argument. However, if you are using JavaScript you might want to use LogLevel
enum, that would guarantee to provide you a safe value:
import { LogLevel } from 'react-native-adapty'
adapty.setLogLevel(LogLevel.VERBOSE);
Handling logs
If you save your stdout logs, you might want to filter Adapty logs from others. To do this you can add a prefix for all AdaptyError
instances that would be consoled:
import { AdaptyError } from 'react-native-adapty';
AdaptyError.prefix = "[ADAPTY]";
You also can handle all the raised errors from any place you like with onError
. Errors would be thrown where expected, but also duplicated to your event listener:
import { AdaptyError } from 'react-native-adapty';
AdaptyError.onError = error => {
// ...
console.error(error);
};
Collecting usage logs (iOS only)
The Adapty SDK allows you to activate the remote logging system. If you are experiencing any problems during a review process, or you need help with analyzing something in the production environment, you will need to activate this system both in the application's build itself and in our system (Contact the technical support team for the assistance).
To activate this system, pass the enableUsageLogs
parameter while activating the SDK:
adapty.activate('PUBLIC_SDK_KEY', {
enableUsageLogs: true,
});
Updated about 1 month ago