Code Monkey home page Code Monkey logo

clevertap-xamarin's Introduction

CleverTap Xamarin Bindings SDK

๐Ÿ‘‹ Introduction

The CleverTap Xamarin Bindings SDK for Mobile Customer Engagement and Analytics solutions.

For more information check out our website and documentation.

Supports

Xamarin Binding Library

  • Android - Use the CleverTap.Bindings.Android DLL file and add it to the References. This targets Xamarin.Android apps.
  • iOS - Use the DLL and add it to the Reference. This targets Xamarin.iOS apps.

.NET Binding Library

  • Android - Add CleverTap.DotNet.Android.Binding to NuGet Packages. This targets .NET 8.0+ Android and Multi-platform App UI (MAUI) apps.
  • iOS - Add CleverTap.DotNet.iOS.Binding to NuGet Packages. This targets .NET 8.0+ iOS and Multi-platform App UI (MAUI) apps.

๐Ÿš€ Xamarin Installation and Quick Start

๐Ÿ‘จโ€๐Ÿ’ป Android Guide

  1. Install the SDK

    Use the CleverTap.Bindings.Android DLL file and add it to the References.

  2. Add Your CleverTap Credentials in AndroidManifest.xml

<meta-data
    android:name="CLEVERTAP_ACCOUNT_ID"
    android:value="Your CleverTap Account ID"/>

<meta-data
    android:name="CLEVERTAP_TOKEN"
    android:value="Your CleverTap Account Token"/>

<!-- IMPORTANT: To force use Google AD ID to uniquely identify  users, use the following meta tag. GDPR mandates that if you are using this tag, there is prominent disclousure to your end customer in their application. Read more about GDPR here - https://clevertap.com/blog/in-preparation-of-gdpr-compliance/ -->
<meta-data
    android:name="CLEVERTAP_USE_GOOGLE_AD_ID"
    android:value="1"/> 
  1. Enable Tracking by Adding Permissions
  • In your AndroidManifest.xml file, add the following snippet within the tags.
<application
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:name="com.clevertap.android.sdk.Application">
  • Next add the snippet below in the same file, so the CleverTap Xamarin SDK can access the internet.
<!-- Required to allow the app to send events and user profile information -->
<uses-permission android:name="android.permission.INTERNET"/>

<!-- Recommended so that CleverTap knows when to attempt a network call -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  1. Initialize the CleverTap SDK
CleverTapAPI cleverTapAPI = CleverTapAPI.GetDefaultInstance(Android.App.Application.Context);

For more information,

๐Ÿ‘ฉโ€๐Ÿ’ป iOS Guide

  1. Install the SDK

    Use the DLL and add it to the Reference

  2. Integrating the CleverTap SDK

    • Follow the integration instruction starting with Step 2 here.
    • Add CleverTap to yourย AppDelegate.csย and add the following snippet in FinishedLaunchingย method.
using CleverTapSDK;

public bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    // Override point for customization after application launch.
    // If not required for your application you can safely delete this method

    CleverTap.AutoIntegrate();
    return true;
}

For more information,

๐Ÿ†• Changelog

Refer to the CleverTap Xamarin SDK Change Log.

โ“Questions

If you have questions or concerns, you can reach out to the CleverTap support team from the CleverTap Dashboard.

๐Ÿ“„ License

CleverTap Xamarin SDK is MIT licensed, as found in the LICENSE file.

clevertap-xamarin's People

Contributors

aditi3 avatar anush-shand avatar darshanclevertap avatar nishant-clevertap avatar pwilkniss avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clevertap-xamarin's Issues

Crash stability issue

I've integrated the Clevertap DLL into Xamarin iOS project, and I'm encountering recurring crash reports in Firebase, which is negatively impacting the overall stability trend.

com.clevertap.serialQueue:TEST-AAA-BBB-CCCC
0 libsystem_kernel.dylib 0xca4 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x13b74 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x13e4c mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x11e8 mach_msg + 24
4 libdispatch.dylib 0x1f20c _dispatch_mach_send_and_wait_for_reply + 548
5 libdispatch.dylib 0x1f59c dispatch_mach_send_with_result_and_wait_for_reply + 60
6 libxpc.dylib 0x10218 xpc_connection_send_message_with_reply_sync + 240
7 CoreFoundation 0x9fc24 __99-[CFPrefsPlistSource sendFullyPreparedMessage:toConnection:settingValues:forKeys:count:retryCount:]_block_invoke + 64
8 CoreFoundation 0x1a0f3c -[_CFXPreferences withConnectionForRole:andUserIdentifier:performBlock:] + 52
9 CoreFoundation 0xfbd44 -[CFPrefsPlistSource sendFullyPreparedMessage:toConnection:settingValues:forKeys:count:retryCount:] + 316
10 CoreFoundation 0x53a18 -[CFPrefsPlistSource sendMessageSettingValues:forKeys:count:] + 828
11 CoreFoundation 0x46c7c -[CFPrefsPlistSource alreadylocked_setPrecopiedValues:forKeys:count:from:] + 1240
12 CoreFoundation 0x45cd4 -[CFPrefsSource setValues:forKeys:count:copyValues:removeValuesForKeys:count:from:] + 420
13 CoreFoundation 0x46794 -[CFPrefsSource setValues:forKeys:count:copyValues:from:] + 36
14 CoreFoundation 0x462d4 -[CFPrefsSearchListSource alreadylocked_setPrecopiedValues:forKeys:count:from:] + 1004
15 CoreFoundation 0x45cd4 -[CFPrefsSource setValues:forKeys:count:copyValues:removeValuesForKeys:count:from:] + 420
16 CoreFoundation 0x45b08 -[CFPrefsSource setValue:forKey:from:] + 72
17 CoreFoundation 0x45a38 __76-[_CFXPreferences setValue:forKey:appIdentifier:container:configurationURL:]_block_invoke + 60
18 CoreFoundation 0x9b1ec __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 392
19 CoreFoundation 0x86e58 normalizeQuintuplet + 356
20 CoreFoundation 0x836f0 -[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 152
21 CoreFoundation 0x2b8f4 -[_CFXPreferences setValue:forKey:appIdentifier:container:configurationURL:] + 128
22 CoreFoundation 0x2b830 _CFPreferencesSetAppValueWithContainerAndConfiguration + 120
23 Foundation 0x5cde8 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 68
24 CleverTapSDK 0x269a8 +[CTPreferences putInt:forKey:] + 136
25 CleverTapSDK 0x42d84 -[CleverTap updateSessionTime:] + 184
26 CleverTapSDK 0x439a0 __33-[CleverTap queueEvent:withType:]_block_invoke_2.534 + 64
27 CleverTapSDK 0x41c6c -[CleverTap runSerialAsync:] + 52
28 CleverTapSDK 0x4389c -[CleverTap queueEvent:withType:] + 468
29 CleverTapSDK 0x4a10c __35-[CleverTap recordEvent:withProps:]_block_invoke_2 + 68
30 CleverTapSDK 0xd91c +[CTEventBuilder build:withEventActions:completionHandler:] + 2212
31 CleverTapSDK 0x4a0bc __35-[CleverTap recordEvent:withProps:]_block_invoke + 88
32 libdispatch.dylib 0x2320 _dispatch_call_block_and_release + 32
33 libdispatch.dylib 0x3eac _dispatch_client_callout + 20
34 libdispatch.dylib 0xb534 _dispatch_lane_serial_drain + 668
35 libdispatch.dylib 0xc0a4 _dispatch_lane_invoke + 384
36 libdispatch.dylib 0x16cdc _dispatch_workloop_worker_thread + 648
37 libsystem_pthread.dylib 0xddc _pthread_wqthread + 288
38 libsystem_pthread.dylib 0xb7c start_wqthread + 8

Net8 MAUI Version

We are moving our e-commerce platform to MAUI. We are almost ready however the only component that is not working is the CleverTap one. In case there is no plan to create the version for NET MAUI we will be force to remove the CleverTap integration. Also we tried to create the binding, but the generated assembly does not have several properties and methods.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.