feat: 自定义的插件

This commit is contained in:
zoujing
2023-04-10 18:48:16 +08:00
commit e1795f2de2
621 changed files with 18614 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
//
// ACMConfig.h
// ATAuthSDK
//
// Created by 刘超的MacBook on 2020/5/19.
// Copyright © 2020. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "ACMUploadInterface.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, ACMMonitorUploadType) {
ACMMonitorUploadTypeRealTime, //实时上传,暂时不支持,如果采用这个方式将以默认的轮询上传实现
ACMMonitorUploadTypeCirculate, //轮询上传
ACMMonitorUploadTypeManual //手动上传
};
@interface ACMConfig : NSObject
+ (instancetype)sharedInstance;
/// 日志是否入库默认NO
@property (atomic, assign) BOOL loggerIsSaveInDB;
/// 埋点是否入库默认YES
@property (atomic, assign) BOOL monitorIsSaveInDB;
/// 日志是否上传默认NO
@property (atomic, assign) BOOL loggerIsUpload;
/// 埋点是否上传默认YES
@property (atomic, assign) BOOL monitorIsUpload;
/// 日志埋点组件上传type默认 ACMMonitorUploadTypeManual
@property (nonatomic, assign) ACMMonitorUploadType uploadType;
/// 日志埋点组件上传代理对象,注:这里是弱引用,组件外面需要保证该上传对象不要被释放,如果被释放掉将影响日志埋点的上传
@property (nonatomic, weak) id<ACMProtocol> uploadDelegate;
/// 更新日志埋点组件限流信息
- (void)setLimitConfig:(NSDictionary *)info;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,34 @@
//
// ACMLogger.h
// Monitor
//
// Created by Vienta on 2019/11/13.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ACMLogger : NSObject
+ (BOOL)verboseRecord:(id)obj;
+ (BOOL)debugRecord:(id)obj;
+ (BOOL)infoRecord:(id)obj;
+ (BOOL)warnRecord:(id)obj;
+ (BOOL)errorRecord:(id)obj;
/**
* 日志上传
* @param startDate 日志开始时间如果传nil则查询不加该条件
* @param endDate 日志结束时间如果传nil则查询不加该条件
* @param levels 日志等级数组里面包含对应的日志等级字符串如果传nil则查询不加该条件
*/
+ (void)uploadLoggerRecordsWithStartDate:(NSDate * _Nullable)startDate endDate:(NSDate * _Nullable)endDate levels:(NSArray <NSString *>* _Nullable)levels;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,35 @@
//
// ACMMonitor.h
// Monitor
//
// Created by Vienta on 2019/11/13.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ACMMonitor : NSObject
/**
* 上传非实时埋点
* @param obj 埋点内容
* @return 埋点存储结果
*/
+ (BOOL)monitorRecord:(id)obj;
/**
* 上传实时埋点
* @param obj 埋点内容
* @return 埋点上传准备结果
*/
+ (BOOL)monitorRealtimeRecord:(id)obj;
/**
* 开始手动上传在设置uploadType为ACMMonitorUploadManual时生效
*/
+ (void)uploadMonitorByManual;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,25 @@
//
// ACMUploadInterface.h
// Monitor
//
// Created by 沈超 on 2019/12/17.
//
@protocol ACMProtocol <NSObject>
@required
/**
* 埋点聚合上传(包括轮询和手动)
* @param monitors 需要上传的埋点信息
* @return 上传是否成功,建议上传采用同步策略
*/
- (BOOL)uploadMonitors:(NSArray<NSDictionary *> *)monitors;
/**
* 日志上传
* @param logContents 需要上传的日志
* @return 上传是否成功,建议上传采用同步策略
*/
- (BOOL)uploadLogs:(NSArray<NSDictionary *> *)logContents;
@end

View File

@@ -0,0 +1,26 @@
//
// ACMUploadManager.h
// Monitor
//
// Created by Vienta on 2019/11/13.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ACMUploadManager : NSObject
/**
* 上传失败的数据同时会上传埋点和日志的数据如果有降级限流的情况最好是在设置完成相应的降级接口setACMLoggerEnable:和 setACMMonitorEnable之后调用
*/
+ (void)uploadFailedData;
/**
* 业务层配置降级限流
*/
+ (void)setLimitConfig:(NSDictionary *)info;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,22 @@
//
// YTXMonitor.h
// YTXMonitor
//
// Created by li yang on 2020/11/23.
//
#import <Foundation/Foundation.h>
//! Project version number for YTXMonitor.
FOUNDATION_EXPORT double YTXMonitorVersionNumber;
//! Project version string for YTXMonitor.
FOUNDATION_EXPORT const unsigned char YTXMonitorVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <YTXMonitor/PublicHeader.h>
#import "ACMLogger.h"
#import "ACMMonitor.h"
#import "ACMConfig.h"
#import "ACMUploadInterface.h"
#import "ACMUploadManager.h"

Binary file not shown.

View File

@@ -0,0 +1,6 @@
framework module YTXMonitor {
umbrella header "YTXMonitor.h"
export *
module * { export * }
}

Binary file not shown.