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.
Access Path: Asset Management - App Management - AppKey

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.
| Framework | Description |
|---|---|
| Security.framework | To store device identifiers |
| CoreTelephony.framework | To obtain carrier information |
| AdSupport.framework | To obtain Advertising Identifier information |
| SystemConfiguration.framework | To check the current network environment |
| libsqlite3.dylib | To store data |
| AdServices.framework | To 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
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'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;| Parameter | Data Type | Required | Note |
|---|---|---|---|
| appKey | NSString | YES | Your own appKey obtained from SolarEngine dashboard |
Sample Code
#import <SolarEngineSDK/SolarEngineSDK.h>
[[SolarEngineSDK sharedInstance] preInitWithAppKey:your_appKey];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.
| Method | Data Type | Required | Description |
|---|---|---|---|
| enableAttribution | boolean | No | Whether 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. |
| enableAnalytics | boolean | No | Whether 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. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| isGDPRArea | BOOL | No | Whether to set it as GDPR area (Default NO) |
| logEnabled | BOOL | No | Whether to enable local debugging logs (Default NO) |
| isDebugModel | BOOL | No | Whether 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. |
| setCoppaEnabled | BOOL | No | If your app is required to comply with Children's Online Privacy Protection Rule ("COPPA"), please set "setCoppaEnabled = YES". (Default NO) |
| setKidsAppEnabled | BOOL | No | If your app is targeting kids under 13 years old, please mark your app as "Kids App" category and set "setKidsAppEnabled = YES". (Default NO) |
| attAuthorizationWaitingInterval | BOOL | No | Supports 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) |
| enableDelayDeeplink | BOOL | No | Whether to enable deferred deeplinking (Default NO) |
| enableODMInfo | BOOL | No | Whether 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】 |
| enableSeparatedAttribution | BOOL | No | Whether to enable new attribution feature. After enabled, corresponding attribution results can be retrieved quickly. |
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.
| Method | Type | Required | Description |
|---|---|---|---|
| enableLanguage | boolean | No | Whether to collect device language. Set to false to disable collection. Default true (enabled). |
| enableLocale | boolean | No | Whether to collect device locale. Set to false to disable collection. Default true (enabled). |
| enableTimeZone | boolean | No | Whether to collect device time zone. Set to false to disable collection. Default true (enabled). |
| enableScreenWH | boolean | No | Whether to collect screen width and height. Set to false to disable collection. Default true (enabled). |
| enableNetworkType | boolean | No | Whether to collect network status. Set to false to disable collection. Default true (enabled). |
| enableUA | boolean | No | Whether to collect User-Agent (UA). Set to false to disable collection. Default true (enabled). |
| enableIPV6Address | BOOL | No | Whether to collect IPv6 address. Default true (enabled). Supported in China Mainland only. |
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;| Parameter | Data Type | Required | Note |
|---|---|---|---|
| appKey | NSString | YES | appkey obtained from SolarEngine dashboard |
| config | SEConfig | NO | initialization 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
| Code | Meaning |
|---|---|
| 0 | Initialization success |
| 101 | Initialization failed, as pre-initialization is not called |
| 102 | Initialization failed, due to illegal appkey |
| 110 | SDK 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);
}
}];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).
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.
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