<NME> DoraemonManager.h
<BEF> //
//  DoraemonManager.h
//  DoraemonKit
//
//  Created by yixiang on 2017/12/11.
//

#import <Foundation/Foundation.h>


NS_ASSUME_NONNULL_BEGIN
typedef void (^DoraemonH5DoorBlock)(NSString *);
typedef UIImage * _Nullable (^DoraemonWebpHandleBlock)(NSString *filePath);

typedef NS_ENUM(NSUInteger, DoraemonManagerPluginType) {
    #pragma mark - weex专项工具
    // 日志
    DoraemonManagerPluginType_DoraemonWeexLogPlugin,
    // 缓存
    DoraemonManagerPluginType_DoraemonWeexStoragePlugin,
    // 信息
    DoraemonManagerPluginType_DoraemonWeexInfoPlugin,
    // DevTool
    DoraemonManagerPluginType_DoraemonWeexDevToolPlugin,
    #pragma mark - 常用工具
    // App设置
    DoraemonManagerPluginType_DoraemonAppSettingPlugin,
    // App信息
    DoraemonManagerPluginType_DoraemonAppInfoPlugin,
    // 沙盒浏览
    DoraemonManagerPluginType_DoraemonSandboxPlugin,
    // MockGPS
    DoraemonManagerPluginType_DoraemonGPSPlugin,
    // H5任意门
    DoraemonManagerPluginType_DoraemonH5Plugin,
    // Crash查看
    DoraemonManagerPluginType_DoraemonCrashPlugin,
    // 子线程UI
    DoraemonManagerPluginType_DoraemonSubThreadUICheckPlugin,
    // 清理缓存
    DoraemonManagerPluginType_DoraemonDeleteLocalDataPlugin,
    // NSLog
    DoraemonManagerPluginType_DoraemonNSLogPlugin,
    // 日志显示
    DoraemonManagerPluginType_DoraemonCocoaLumberjackPlugin,
    // 数据库工具
    DoraemonManagerPluginType_DoraemonDatabasePlugin,
    // NSUserDefaults工具
    DoraemonManagerPluginType_DoraemonNSUserDefaultsPlugin,
    // JS脚本
    DoraemonManagerPluginType_DoraemonJavaScriptPlugin,
    
    #pragma mark - 性能检测
    // 帧率监控
    DoraemonManagerPluginType_DoraemonFPSPlugin,
    // CPU监控
    DoraemonManagerPluginType_DoraemonCPUPlugin,
    // 内存监控
    DoraemonManagerPluginType_DoraemonMemoryPlugin,
    // 流量监控
    DoraemonManagerPluginType_DoraemonNetFlowPlugin,
    // 卡顿检测
    DoraemonManagerPluginType_DoraemonANRPlugin,
    // Load耗时
    DoraemonManagerPluginType_DoraemonMethodUseTimePlugin,
    // 大图检测
    DoraemonManagerPluginType_DoraemonLargeImageFilter,
    // 启动耗时
    DoraemonManagerPluginType_DoraemonStartTimePlugin,
    // 内存泄漏
    DoraemonManagerPluginType_DoraemonMemoryLeakPlugin,
    // UI层级检查
    DoraemonManagerPluginType_DoraemonUIProfilePlugin,
    // UI结构调整
    DoraemonManagerPluginType_DoraemonHierarchyPlugin,
    // 函数耗时
    DoraemonManagerPluginType_DoraemonTimeProfilePlugin,
    // 模拟弱网
    DoraemonManagerPluginType_DoraemonWeakNetworkPlugin,
    
    #pragma mark - 视觉工具
    // 颜色吸管
    DoraemonManagerPluginType_DoraemonColorPickPlugin,
    // 组件检查
    DoraemonManagerPluginType_DoraemonViewCheckPlugin,
    // 对齐标尺
    DoraemonManagerPluginType_DoraemonViewAlignPlugin,
    // 元素边框线
    DoraemonManagerPluginType_DoraemonViewMetricsPlugin,
    
    #pragma mark - 平台工具
    // Mock 数据
    DoraemonManagerPluginType_DoraemonMockPlugin,
    DoraemonManagerPluginType_DoraemonHealthPlugin,
    DoraemonManagerPluginType_DoraemonFileSyncPlugin
};

@interface DoraemonManagerPluginTypeModel : NSObject

@property(nonatomic, copy) NSString *title;
@property(nonatomic, copy) NSString *desc;
@property(nonatomic, copy) NSString *icon;
@property(nonatomic, copy) NSString *pluginName;
@property(nonatomic, copy) NSString *atModule;
@property(nonatomic, copy) NSString *buriedPoint;

@end

@interface DoraemonManager : NSObject

+ (nonnull DoraemonManager *)shareInstance;

@property (nonatomic, copy) NSString *appKey __attribute__((deprecated("此属性已被弃用，替换方式请参考最新 https://www.dokit.cn/ 的使用手册")));

@property (nonatomic, copy) NSString *pId; //产品id 平台端的工具必须填写

@property (nonatomic, copy) NSString *mockDomain; //产品mockDomain 非必填 默认mock.dokit.cn

@property (nonatomic, assign) BOOL autoDock; //dokit entry icon support autoDock，deffault yes

- (void)install;
// 带有平台端功能的s初始化方式
- (void)installWithPid:(NSString *)pId;

// 自定义平台mockDomain初始化方式
- (void)installWithMockDomain:(NSString *)mockDomain;

// 定制起始位置 | 适用正好挡住关键位置
- (void)installWithStartingPosition:(CGPoint) position;

- (void)installWithCustomBlock:(void(^)(void))customBlock;

@property (nonatomic,strong) NSMutableArray *dataArray;

@property (nonatomic, copy) DoraemonH5DoorBlock h5DoorBlock;
@property (nonatomic, copy) DoraemonWebpHandleBlock webpHandleBlock;

- (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName;
- (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName handle:(void(^)(NSDictionary *itemData))handleBlock;

- (void)addPluginWithTitle:(NSString *)title image:(UIImage *)image desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName handle:(void(^ _Nullable)(NSDictionary *itemData))handleBlock;


- (void)removePluginWithPluginType:(DoraemonManagerPluginType)pluginType;

- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName;

- (void)addStartPlugin:(NSString *)pluginName;

- (void)addH5DoorBlock:(DoraemonH5DoorBlock)block;

- (void)addANRBlock:(void(^)(NSDictionary *anrDic))block;

- (void)addPerformanceBlock:(void(^)(NSDictionary *performanceDic))block;

- (void)addWebpHandleBlock:(DoraemonWebpHandleBlock)block;

- (BOOL)isShowDoraemon;

- (void)showDoraemon;

- (void)hiddenDoraemon;

- (void)hiddenHomeWindow;

@property (nonatomic, assign) int64_t bigImageDetectionSize; // 外部设置大图检测的监控数值  比如监控所有图片大于50K的图片 那么这个值就设置为 50 * 1024；

@property (nonatomic, copy) NSString *startClass; //如果你的启动代理不是默认的AppDelegate,需要传入才能获取正确的启动时间

@property (nonatomic, copy) NSArray *vcProfilerBlackList;//使用vcProfiler的使用，兼容一些异常情况，比如issue416

@property (nonatomic, strong) NSMutableDictionary *keyBlockDic;//保存key和block的关系

/// DoKit 支持的旋转方向
@property (assign, nonatomic) UIInterfaceOrientationMask supportedInterfaceOrientations;


- (void)configEntryBtnBlingWithText:(nullable NSString *)text backColor:(nullable UIColor *)backColor;
@end
NS_ASSUME_NONNULL_END

<MSG> Eliminate warming of Carthage access

<DFF> @@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
 
 
 NS_ASSUME_NONNULL_BEGIN

{'commit': 'diff --git a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h\nindex 43556e9c..8857225c 100644\n--- a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h\n+++ b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h\n@@ -6,6 +6,7 @@\n //\n \n #import <Foundation/Foundation.h>\n+#import <UIKit/UIKit.h>\n \n \n NS_ASSUME_NONNULL_BEGIN\ndiff --git a/iOS/DoraemonKitScheme/DoraemonKit/DoraemonKit/DoraemonKit.h b/iOS/DoraemonKitScheme/DoraemonKit/DoraemonKit/DoraemonKit.h\nindex 912eddc5..67397746 100644\n--- a/iOS/DoraemonKitScheme/DoraemonKit/DoraemonKit/DoraemonKit.h\n+++ b/iOS/DoraemonKitScheme/DoraemonKit/DoraemonKit/DoraemonKit.h\n@@ -7,6 +7,7 @@\n //\n \n #import <Foundation/Foundation.h>\n+#import "DoraemonManager.h"\n \n //! Project version number for DoraemonKit.\n FOUNDATION_EXPORT double DoraemonKitVersionNumber;\n', 'commit_subject': 'Eliminate warming of Carthage access', 'repo_name': 'didi/DoraemonKit', 'committer': {'name': 'ydlsl', 'email': '6ba70aafd91f68337899687845de7257666da8dd@qq.com', 'time_sec': '1572421952', 'tz_offset': '480', 'date': {'seconds': '1572421952'}}, 'commit_tree': 'e365f44dc6b69ca696ec9b0a69e72e11236551ef', 'commit_message': 'Eliminate warming of Carthage access\n', 'language_name': 'C', 'license': 'apache-2.0', 'hunks': '@@ -6,6 +6,7 @@\n //\n \n #import <Foundation/Foundation.h>\n+#import <UIKit/UIKit.h>\n \n \n NS_ASSUME_NONNULL_BEGIN\n', 'addition_count': 1, 'deletion_count': 0, 'src_file': 'a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h', 'tgt_file': 'b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h', 'file_extension': '.h', 'before_file': '//\n//  DoraemonManager.h\n//  DoraemonKit\n//\n//  Created by yixiang on 2017/12/11.\n//\n\n#import <Foundation/Foundation.h>\n\n\nNS_ASSUME_NONNULL_BEGIN\ntypedef void (^DoraemonH5DoorBlock)(NSString *);\ntypedef UIImage * _Nullable (^DoraemonWebpHandleBlock)(NSString *filePath);\n\ntypedef NS_ENUM(NSUInteger, DoraemonManagerPluginType) {\n    #pragma mark - weex专项工具\n    // 日志\n    DoraemonManagerPluginType_DoraemonWeexLogPlugin,\n    // 缓存\n    DoraemonManagerPluginType_DoraemonWeexStoragePlugin,\n    // 信息\n    DoraemonManagerPluginType_DoraemonWeexInfoPlugin,\n    // DevTool\n    DoraemonManagerPluginType_DoraemonWeexDevToolPlugin,\n    #pragma mark - 常用工具\n    // App设置\n    DoraemonManagerPluginType_DoraemonAppSettingPlugin,\n    // App信息\n    DoraemonManagerPluginType_DoraemonAppInfoPlugin,\n    // 沙盒浏览\n    DoraemonManagerPluginType_DoraemonSandboxPlugin,\n    // MockGPS\n    DoraemonManagerPluginType_DoraemonGPSPlugin,\n    // H5任意门\n    DoraemonManagerPluginType_DoraemonH5Plugin,\n    // Crash查看\n    DoraemonManagerPluginType_DoraemonCrashPlugin,\n    // 子线程UI\n    DoraemonManagerPluginType_DoraemonSubThreadUICheckPlugin,\n    // 清理缓存\n    DoraemonManagerPluginType_DoraemonDeleteLocalDataPlugin,\n    // NSLog\n    DoraemonManagerPluginType_DoraemonNSLogPlugin,\n    // 日志显示\n    DoraemonManagerPluginType_DoraemonCocoaLumberjackPlugin,\n    // 数据库工具\n    DoraemonManagerPluginType_DoraemonDatabasePlugin,\n    // NSUserDefaults工具\n    DoraemonManagerPluginType_DoraemonNSUserDefaultsPlugin,\n    // JS脚本\n    DoraemonManagerPluginType_DoraemonJavaScriptPlugin,\n    \n    #pragma mark - 性能检测\n    // 帧率监控\n    DoraemonManagerPluginType_DoraemonFPSPlugin,\n    // CPU监控\n    DoraemonManagerPluginType_DoraemonCPUPlugin,\n    // 内存监控\n    DoraemonManagerPluginType_DoraemonMemoryPlugin,\n    // 流量监控\n    DoraemonManagerPluginType_DoraemonNetFlowPlugin,\n    // 卡顿检测\n    DoraemonManagerPluginType_DoraemonANRPlugin,\n    // Load耗时\n    DoraemonManagerPluginType_DoraemonMethodUseTimePlugin,\n    // 大图检测\n    DoraemonManagerPluginType_DoraemonLargeImageFilter,\n    // 启动耗时\n    DoraemonManagerPluginType_DoraemonStartTimePlugin,\n    // 内存泄漏\n    DoraemonManagerPluginType_DoraemonMemoryLeakPlugin,\n    // UI层级检查\n    DoraemonManagerPluginType_DoraemonUIProfilePlugin,\n    // UI结构调整\n    DoraemonManagerPluginType_DoraemonHierarchyPlugin,\n    // 函数耗时\n    DoraemonManagerPluginType_DoraemonTimeProfilePlugin,\n    // 模拟弱网\n    DoraemonManagerPluginType_DoraemonWeakNetworkPlugin,\n    \n    #pragma mark - 视觉工具\n    // 颜色吸管\n    DoraemonManagerPluginType_DoraemonColorPickPlugin,\n    // 组件检查\n    DoraemonManagerPluginType_DoraemonViewCheckPlugin,\n    // 对齐标尺\n    DoraemonManagerPluginType_DoraemonViewAlignPlugin,\n    // 元素边框线\n    DoraemonManagerPluginType_DoraemonViewMetricsPlugin,\n    \n    #pragma mark - 平台工具\n    // Mock 数据\n    DoraemonManagerPluginType_DoraemonMockPlugin,\n    DoraemonManagerPluginType_DoraemonHealthPlugin,\n    DoraemonManagerPluginType_DoraemonFileSyncPlugin\n};\n\n@interface DoraemonManagerPluginTypeModel : NSObject\n\n@property(nonatomic, copy) NSString *title;\n@property(nonatomic, copy) NSString *desc;\n@property(nonatomic, copy) NSString *icon;\n@property(nonatomic, copy) NSString *pluginName;\n@property(nonatomic, copy) NSString *atModule;\n@property(nonatomic, copy) NSString *buriedPoint;\n\n@end\n\n@interface DoraemonManager : NSObject\n\n+ (nonnull DoraemonManager *)shareInstance;\n\n@property (nonatomic, copy) NSString *appKey __attribute__((deprecated("此属性已被弃用，替换方式请参考最新 https://www.dokit.cn/ 的使用手册")));\n\n@property (nonatomic, copy) NSString *pId; //产品id 平台端的工具必须填写\n\n@property (nonatomic, copy) NSString *mockDomain; //产品mockDomain 非必填 默认mock.dokit.cn\n\n@property (nonatomic, assign) BOOL autoDock; //dokit entry icon support autoDock，deffault yes\n\n- (void)install;\n// 带有平台端功能的s初始化方式\n- (void)installWithPid:(NSString *)pId;\n\n// 自定义平台mockDomain初始化方式\n- (void)installWithMockDomain:(NSString *)mockDomain;\n\n// 定制起始位置 | 适用正好挡住关键位置\n- (void)installWithStartingPosition:(CGPoint) position;\n\n- (void)installWithCustomBlock:(void(^)(void))customBlock;\n\n@property (nonatomic,strong) NSMutableArray *dataArray;\n\n@property (nonatomic, copy) DoraemonH5DoorBlock h5DoorBlock;\n@property (nonatomic, copy) DoraemonWebpHandleBlock webpHandleBlock;\n\n- (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName;\n- (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName handle:(void(^)(NSDictionary *itemData))handleBlock;\n\n- (void)addPluginWithTitle:(NSString *)title image:(UIImage *)image desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName handle:(void(^ _Nullable)(NSDictionary *itemData))handleBlock;\n\n\n- (void)removePluginWithPluginType:(DoraemonManagerPluginType)pluginType;\n\n- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName;\n\n- (void)addStartPlugin:(NSString *)pluginName;\n\n- (void)addH5DoorBlock:(DoraemonH5DoorBlock)block;\n\n- (void)addANRBlock:(void(^)(NSDictionary *anrDic))block;\n\n- (void)addPerformanceBlock:(void(^)(NSDictionary *performanceDic))block;\n\n- (void)addWebpHandleBlock:(DoraemonWebpHandleBlock)block;\n\n- (BOOL)isShowDoraemon;\n\n- (void)showDoraemon;\n\n- (void)hiddenDoraemon;\n\n- (void)hiddenHomeWindow;\n\n@property (nonatomic, assign) int64_t bigImageDetectionSize; // 外部设置大图检测的监控数值  比如监控所有图片大于50K的图片 那么这个值就设置为 50 * 1024；\n\n@property (nonatomic, copy) NSString *startClass; //如果你的启动代理不是默认的AppDelegate,需要传入才能获取正确的启动时间\n\n@property (nonatomic, copy) NSArray *vcProfilerBlackList;//使用vcProfiler的使用，兼容一些异常情况，比如issue416\n\n@property (nonatomic, strong) NSMutableDictionary *keyBlockDic;//保存key和block的关系\n\n/// DoKit 支持的旋转方向\n@property (assign, nonatomic) UIInterfaceOrientationMask supportedInterfaceOrientations;\n\n\n- (void)configEntryBtnBlingWithText:(nullable NSString *)text backColor:(nullable UIColor *)backColor;\n@end\nNS_ASSUME_NONNULL_END\n', 'message': 'Eliminate warming of Carthage access\n', 'author_name': 'ydlsl', 'lang': 'h'}