Skip to main content

Real-time debugging

Last updated 10/02/2026

During SDK integration, you can debug in real time by viewing the SDK logs in the IDE console or by using the Debug feature of AE.

1. Print SDK logs​

[TDAnalytics enableLog:YES];

After you enable logging, filter the ThinkingData logs in the IDE to observe the SDK's data reporting.

2. Enable Debug mode​

Enabling Debug mode takes the following two steps:

  1. Enable Debug mode on the client

The following sample code enables Debug mode on the client:

[TDAnalytics enableLog:YES];
NSString *appid = @"AppId";
NSString *url = @"ServerUrl";

// SDK needs to be initialized on the main thread

// the second way
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverURL = url;
/*
Set the run mode to Debug mode
Normal mode: Data is cached and reported according to a caching strategy. Normal is the default mode. Recommended for the production environment
Debug mode: Data is reported one record at a time. Problems are reported to the user through logs and exceptions. Not recommended for the production environment
DebugOnly mode: Data is only validated and not stored. Not recommended for the production environment
*/
config.mode = TDModeDebug;
[TDAnalytics startAnalyticsWithConfig:config];
  1. Add a Debug device in the AE backend

To prevent Debug mode from going live in the production environment, Debug mode can only be enabled on specified devices. Debug mode can be enabled only on devices that have Debug mode enabled on the client and whose device IDs have been added on the Data → Tracking → Debugger page in the AE backend. To add a device, click Add test device in the upper-right corner of the page, click New device in the Select device drawer, and enter the device ID.

You can get the device ID in the following three ways:

  • The #device_id property in the event data in AE
  • Client logs: The SDK prints the DeviceId after initialization completes
  • Call the instance API: Get the device ID

Debug mode may affect data collection quality and App stability. Use it only to verify data during integration, and don't use it in the production environment.

Was this page helpful?