Skip to content
Unity iOS/Android Plugin for the CleverTap SDK
Objective-C C# Java C Objective-C++ Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Unity iOS/Android plugin for the CleverTap SDK

NOTE: If you are using any AndroidX dependencies in your project, refer v2.0.0


  1. Import the CleverTapUnityPlugin.unitypackage into your Unity Project (Assets > Import Package > Custom Package) or manually Copy Plugin/CleverTapUnity, Plugin/PlayServicesResolver and Plugin/Plugins/Android (or copy the files in Plugin/Plugins/Android to your existing Assets/Plugins/Android directory) into the Assets directory of your Unity Project.

  2. Create an empty game object (GameObject -> Create Empty) and rename it CleverTapUnity. Add Assets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapUnity.cs as a component of the CleverTapUnity GameObject.

    alt text

  3. Select the CleverTapUnity GameObject you created in the Hierarchy pane and add your CleverTap settings inside the Inspector window. You must include your CleverTap Account ID and CleverTap Account Token from your CleverTap Dashboard -> Settings.

  4. Edit Assets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapUnity.cs to add your calls to CleverTap SDK. See usage examples in example/CleverTapUnity.cs. For more information check out our documentation.

iOS Specific:

  • If you want to enable Push Notifications, be sure to add the Push Notifications capability to your Xcode project.

    alt text

  • Add a run script to your build phases, In Xcode, go to your Targets, under your app’s name, select Build Phases after embed frameworks, add a run script phase and set it to use /bin/sh and the script found here:

    alt text

The script will look through your built application’s Frameworks folder and strip out the unnecessary simulator architectures from the CleverTakSDK.framework prior to archiving/submitting the app store.

  • Build and run your iOS project.

Android Specific:

  • Run Assets > Play Services Resolver > Android Resolver > Resolve Client Jars from the Unity menu bar to install the required google play services and android support library dependencies.

  • Edit the AndroidManifest.xml file in Assets/Plugins/Android to add your Bundle Identifier, FCM Sender ID, CleverTap Account Id, CleverTap Token and Deep Link url scheme (if applicable):

    <manifest xmlns:android="" package="YOUR_BUNDLE_IDENTIFIER" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
        android:value="Your CleverTap Account ID"/>
        android:value="Your CleverTap Account Token"/>
    <!-- Deep Links uncomment and replace YOUR_URL_SCHEME, if applicable, or remove if not supporting deep links-->
        <intent-filter android:label="@string/app_name">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="YOUR_URL_SCHEME" />
  • Add the following in the AndroidManifest.xml file -

                <action android:name=""/>
                <action android:name=""/>
  • Add your google-services.json file to the Assets folder of the project.

  • To enable A/B UI editor, edit Assets/CleverTapUnity/CleverTapUnity-Scripts/CleverTapBinding.cs and CleverTapAPI.CallStatic("setUIEditorConnectionEnabled", true) call just before getting the clevertap instance.

public static AndroidJavaObject CleverTap {
        get {
            if (clevertap == null) {
                AndroidJavaObject context = unityCurrentActivity.Call<AndroidJavaObject>("getApplicationContext");
                //set the UI editor flag before getting the Clevertap instance, defaults to false.
                CleverTapAPI.CallStatic("setUIEditorConnectionEnabled", true);
                clevertap = CleverTapAPI.CallStatic<AndroidJavaObject>("getInstance", context);
            return clevertap;
  • Build your app or Android project as usual.
You can’t perform that action at this time.