Sources/Unity4SLS/Unity4SLSiOS.m (117 lines of code) (raw):

// // Unity4SLSiOS.m // AliyunLogProducer // // Created by gordon on 2022/8/24. // Copyright © 2022 com.aysls.ios. All rights reserved. // #import "Unity4SLSiOS.h" #import "SLSCocoa.h" #import "SLSCrashReporter.h" #pragma mark - Interface for Unity bridge #ifdef __cplusplus extern "C"{ #endif static SLSUserInfo *userInfo; SLSCredentials* createCredentials(const char * instanceId, const char * endpoint, const char * project, const char * accesskeyId, const char * accessKeySecret, const char * securityToken) { SLSCredentials *credentials = [SLSCredentials credentials]; if (instanceId) { credentials.instanceId = [NSString stringWithUTF8String:instanceId]; } if (endpoint) { credentials.endpoint = [NSString stringWithUTF8String:endpoint]; } if (project) { credentials.project = [NSString stringWithUTF8String:project]; } if (accesskeyId) { credentials.accessKeyId = [NSString stringWithUTF8String:accesskeyId]; } if (accessKeySecret) { credentials.accessKeySecret = [NSString stringWithUTF8String:accessKeySecret]; } if (securityToken) { credentials.securityToken = [NSString stringWithUTF8String:securityToken]; } return credentials; } void _SLS_InitSLS(const char * instanceId, const char * endpoint, const char * project, const char * accesskeyId, const char * accessKeySecret, const char * securityToken) { SLSCredentials *credentials = createCredentials(instanceId, endpoint, project, accesskeyId, accessKeySecret, securityToken); [[SLSCocoa sharedInstance] initialize:credentials configuration:^(SLSConfiguration * _Nonnull configuration) { configuration.enableCrashReporter = YES; }]; } void _SLS_RegisterCredentialsCallback(cs_sls_callback callback) { [[SLSCocoa sharedInstance] registerCredentialsCallback:^(NSString * _Nonnull feature, NSString * _Nonnull result) { if (callback) { callback(feature.UTF8String, result.UTF8String); } }]; } void _SLS_SetLogLevel(int level) { // [SLSCocoa sharedInstance] } void _SLS_SetCredentials(const char * instanceId, const char * endpoint, const char * project, const char * accesskeyId, const char * accessKeySecret, const char * securityToken) { SLSCredentials *credentials = createCredentials(instanceId, endpoint, project, accesskeyId, accessKeySecret, securityToken); [[SLSCocoa sharedInstance] setCredentials:credentials]; } void _SLS_SetUserInfo(const char * uid, const char * channel) { if (!userInfo) { userInfo = [[SLSUserInfo alloc] init]; } if (uid) { userInfo.uid = [NSString stringWithUTF8String:uid]; } if (channel) { userInfo.channel = [NSString stringWithUTF8String:channel]; } [[SLSCocoa sharedInstance] setUserInfo: userInfo]; } void _SLS_SetExtraOfExt(const char * extKey, const char * extValue) { if (!userInfo) { return; } if (!extKey || !extValue) { return; } [userInfo addExt:[NSString stringWithUTF8String:extValue] key:[NSString stringWithUTF8String:extKey]]; [[SLSCocoa sharedInstance] setUserInfo:userInfo]; } void _SLS_SetExtra(const char * key, const char * value) { if (!key || !value) { return; } [[SLSCocoa sharedInstance] setExtra:[NSString stringWithUTF8String:key] value:[NSString stringWithUTF8String:value]]; } void _SLS_RemoveExtra(const char * key) { if (!key) { return; } [[SLSCocoa sharedInstance] removeExtra:[NSString stringWithUTF8String:key]]; } void _SLS_ClearExtra(void) { [[SLSCocoa sharedInstance] clearExtras]; } void _SLS_ReportCustomLog(const char *type, const char *log) { [[SLSCrashReporter sharedInstance] reportCustomLog:[NSString stringWithUTF8String:log] type:[NSString stringWithUTF8String:type]]; } void _SLS_ReportError(const char * type, const char * message, const char * stacktrace) { [[SLSCrashReporter sharedInstance] reportError:[NSString stringWithUTF8String:type] message:[NSString stringWithUTF8String:message] stacktrace:[NSString stringWithUTF8String:stacktrace] ]; } void _SLS_ReportLuaError(const char * message, const char * stacktrace) { [[SLSCrashReporter sharedInstance] reportError:@"lua" message:[NSString stringWithUTF8String:message] stacktrace:[NSString stringWithUTF8String:stacktrace] ]; } void _SLS_ReportCSharpError(const char * message, const char * stacktrace) { [[SLSCrashReporter sharedInstance] reportError:@"csharp" message:[NSString stringWithUTF8String:message] stacktrace:[NSString stringWithUTF8String:stacktrace] ]; } const char* _SLS_HelloFromiOS(void) { return @"hello from iOS.".UTF8String; } #ifdef __cplusplus } // extern "C" #endif #pragma mark -