Menu

Quick Access

SDK Basic Information

SDK Name: SolarEngine iOS SDK v1.3.3

Developer: Huiliang Cloud (Beijing) Technology Co., Ltd.

SDK Version: 1.3.3

Supported Xcode Version: 14.0 or later

Description: SolarEngine (SE) is an all-in-one mobile app growth analytics and data intelligence platform. It supports data management across global channels, assisting developers to monitor every stage of business development. With our attribution tracking and user-granular ROI analysis, you'll be able to measure the true value every channel creates and optimize future growth strategies. SE also offers various analysis models and A/B testing feature to help fully visualize the user journey, identify potential pain points, implement targeted product enhancements and ultimately drive large-scale app growth.

Privacy Policy:  https://www.solar-engine.com/privacyPolicyEN.html

Compliance Guideline: https://help.solar-engine.com/en/docs/Compliance-Guideline


Note:

The SolarEngine SDK supports iOS 11.0 and above.


Step 1: Get AppKey

Access Path:  Asset Management - App Management - AppKey

Step 2: Obtain SDK

If your product data storage area is in China Mainland, please download via:

https://solar-sdk.oss-cn-beijing.aliyuncs.com/iOS/SolarEngine-iOSSDK-CN-v1.3.3.zip

If your product data storage area is in Non China Mainland, please download via:

https://solar-sdk.oss-cn-beijing.aliyuncs.com/iOS/SolarEngine-iOSSDK-US-v1.3.3.zip

    Obtain SDK Demo

     Download SDK Demo via

     https://solar-sdk.oss-cn-beijing.aliyuncs.com/iOS/SolarEngineSDKDemo.zip

     After downloading, please follow the steps below to run the demo:

1. Enter the SolarEngineSDKDemo directory and open the Podfile. Select China Mainland or Non China Mainland and remove the "#" before the pod.

# China Mainland
#  pod 'SolarEngineSDK'  , '~> 1.3.3'

# Non China Mainland
#  pod 'SolarEngineSDKiOSInter'  , '~> 1.3.3'

2. Enter the SolarEngineSDKDemo directory and execute the pod install command in the terminal to pull the latest code.

3. Double-click SolarEngineSDKDemo.xcworkspace to open the project.

4. In the AppDelegate.m file, set "your_appKey" to your own project's appKey.

Step 3: Integrate SDK

3.1 Add frameworks

FrameworkDescription
Security.frameworkTo store device identifiers
CoreTelephony.frameworkTo obtain carrier information
AdSupport.frameworkTo obtain Advertising Identifier information
SystemConfiguration.frameworkTo check the current network environment
libsqlite3.dylibTo store data
AdServices.frameworkTo obtain attribution data
If you use ASA attribution, AdServices.framework dependency must be added, or we cannot access ASA attribution results.

       

Standard Setup:

       In the project navigator, select TARGETS-->Build Phases-->Link Binary With Libraries-->+ -->Select Security.framework, CoreTelephony.framework, AdSupport.framework, SystemConfiguration.framework, libsqlite3.tbd, AdServices.framework and other library files.

       Please configure all the above dynamic libraries to avoid errors.

Add "-Objc" parameter:

       TARGETS -> Build Settings -> Linking -> Other Linker Flags

3.2 CocoaPods

If your product data storage area is in China Mainland, please download via:

pod 'SolarEngineSDK' , '~> 1.3.3'

If your product data storage area is in Non China Mainland, please download via:

pod 'SolarEngineSDKiOSInter' , '~> 1.3.3'

Step 4: Pre-initialize SDK

When your app is first launched after install, the SDK is pre-initialized. During this time, the SDK does not collect any personal information or report data to SolarEngine.

- (void)preInitWithAppKey:(nonnull NSString *)appKey;
ParameterData TypeRequiredNote
appKeyNSStringYESYour own appKey obtained from SolarEngine dashboard

Sample Code

#import <SolarEngineSDK/SolarEngineSDK.h>


[[SolarEngineSDK sharedInstance] preInitWithAppKey:your_appKey];

Step 5: Initialization Config (optional)

5.1. Core Feature Switches

    It controls the enablement or disablement of core SDK capabilities, directly determining whether core services such as attribution and analytics take effect.

    Note: Disabling relevant core feature switches will disrupt the data reporting. You will no longer be able to fully utilise all functions within SolarEngine dashboard.

MethodData TypeRequiredDescription
enableAttributionbooleanNoWhether to enable SolarEngine attribution service. Enabled by default. Disabling it will turn off all attribution relevant capabilities, including attribution results, deferred deeplinks and deeplinks, etc. If the analytics service is disabled at the same time, the SDK will stop reporting all data.
enableAnalyticsbooleanNoWhether to enable SolarEngine analytics service. Enabled by default. Disabling it can make all analytics features unavailable, such as A/B testing and online parameter. If the attribution service is disabled at the same time, the SDK will stop reporting all data.

5.2. Auxiliary Feature Switches

ParameterTypeRequiredDescription
isGDPRAreaBOOLNoWhether to set it as GDPR area (Default NO)
logEnabledBOOLNoWhether to enable local debugging logs (Default NO)
isDebugModelBOOLNoWhether to turn on the debugging mode (Default NO) YES means turning it on, and the data verification results can be viewed in real time on SolarEngine dashboard. Data generated in debugging mode will not be stored in the database. Do not turn it on in the production environment.
setCoppaEnabledBOOLNoIf your app is required to comply with Children's Online Privacy Protection Rule ("COPPA"), please set "setCoppaEnabled = YES". (Default NO)
setKidsAppEnabledBOOLNoIf your app is targeting kids under 13 years old, please mark your app as "Kids App" category and set "setKidsAppEnabled = YES". (Default NO)
attAuthorizationWaitingIntervalBOOLNoSupports ATT Authorization Waiting for up to 120 seconds when iOS devices report events for the first time. Then SDK will report the install event only after users authorize ATT or when waiting time is up. (Unit: second)
enableDelayDeeplinkBOOLNoWhether to enable deferred deeplinking (Default NO)
enableODMInfoBOOLNoWhether to enable ODMInfo attribution, default No.

This config is only available for apps published in Non China Mainland, designed for Google iOS attribution.
Steps to activate this feature:

1. Integrate the latest version of SolarEngine iOS SDK and include the ODMInfo plugin
2. Set enableODMInfo=True
3. Integrate Firebase SDK
4. Add to the whitelist【Please contact your Google Ads manager to allows your apps on the whitelist】
enableSeparatedAttributionBOOLNoWhether to enable new attribution feature. After enabled, corresponding attribution results can be retrieved quickly.

5.3. Data Collection Switches

   It controls whether data such as IPv6, OAID and UA is collected.

   Note: Disabling corresponding data collection parameters will impair attribution and analytics services, and you will not be able to use relevant functions normally on SolarEngine dashboard.

MethodTypeRequiredDescription
enableLanguagebooleanNoWhether to collect device language. Set to false to disable collection. Default true (enabled).
enableLocalebooleanNoWhether to collect device locale. Set to false to disable collection. Default true (enabled).
enableTimeZonebooleanNoWhether to collect device time zone. Set to false to disable collection. Default true (enabled).
enableScreenWHbooleanNoWhether to collect screen width and height. Set to false to disable collection. Default true (enabled).
enableNetworkTypebooleanNoWhether to collect network status. Set to false to disable collection. Default true (enabled).
enableUAbooleanNoWhether to collect User-Agent (UA). Set to false to disable collection. Default true (enabled).
enableIPV6AddressBOOLNoWhether to collect IPv6 address. Default true (enabled). Supported in China Mainland only.

Step 6: Initialize SDK

       Before formal initialization, please ensure that the user has agreed to the Privacy Policy and the SDK is pre-initialized successfully.

- (void)startWithAppKey:(nonnull NSString *)appKey config:(SEConfig *)config;
ParameterData TypeRequiredNote
appKeyNSStringYESappkey obtained from SolarEngine dashboard
configSEConfigNOinitialization config, default values if not set additionally

Sample Code

SEConfig *config = [[SEConfig alloc] init];
config.logEnabled = YES; //Enable local debugging logs
[[SolarEngineSDK sharedInstance] startWithAppKey:your_appKey config:config];

Initialization Callback Codes

CodeMeaning
0Initialization success
101Initialization failed, as pre-initialization is not called
102Initialization failed, due to illegal appkey
110SDK failed to load configuration
 [[SolarEngineSDK sharedInstance] setInitCompletedCallback:^(int code) {
      if (code == 0) {
            // Initialization success
            NSLog(@"InitCompletedCallback success");
       } else {
            // Initialization failed
            NSLog(@"InitCompletedCallback code = %d",code);
       }
 }];

Step 7: Get Attribution Results

       SolarEngine SDK provides two methods to retrieve attribution result information, allowing developers to use the attribution data for event tracking and other data processing.

1. Set attribution results callback: When the SDK successfully or failed to obtain the attribution result, a callback will be given (asynchronous).

2. Get attribution results directly: Get the attribution results directly from the SDK cache. If the SDK has no attribution results yet, it will directly return nil (synchronous).

7.1. Set Attribution Callback (New)

Sample Code

SEConfig *config = [[SEConfig alloc] init];

// Enable new attribution feature. (Note: if not set, subsequent callbacks will not return data)
config.enableSeparatedAttribution = YES;

// Note: Set the attribution result callback BEFORE SDK initialization.
// The callback may be triggered immediately upon SDK initialization.
// Setting the callback after initialization may result in missing callbacks.

// Monitor new user attribution results
[[SolarEngineSDK sharedInstance] setUAAttributionCallback:^(int code, NSDictionary * _Nullable attributionData) {
    if (code == 0) {
        NSLog(@"attributionData = %@",attributionData);
    } else {
        NSLog(@"code = %d",code)
    }
}];

// Monitor re-targeting attribution results
[[SolarEngineSDK sharedInstance] setREAttributionCallback:^(int code, NSDictionary * _Nullable attributionData) {
    if (code == 0) {
        NSLog(@"attributionData = %@",attributionData);
    } else {
        NSLog(@"code = %d",code)
    }
}];

// Initialize SDK
[[SolarEngineSDK sharedInstance] preInitWithAppKey:"your_appKey"];
[[SolarEngineSDK sharedInstance] startWithAppKey:"your_appKey" config:config];
Important: For callback‑based attribution result retrieval, configure attribution listeners prior to startWithAppKey. Defining listeners post‑initialization may cause imprecise attribution data. See the sample code above.

7.2. Get Attribution Results Directly (New)

   In addition to setting attribution callbacks at initialization, attribution results can be retrieved by calling the API proactively in subsequent business processes.

Important: This API retrieves device local cached data and returns "nil" when cache generation is incomplete.

Sample Code

// Get new user attribution data
- (NSDictionary *)getUAAttributionData;
// Get re-targeting attribution data
- (NSDictionary *)getREAttributionData;


Attribution error code descriptions and detailed attribution results can be found in:  

https://help.solar-engine.com/en/docs/SDK-Attribution-Result-Details


       

Previous
iOS SDK
Next
Optional Features
Last modified: 2026-09-20Powered by