diff --git a/Doc/android_cn_guide.md b/Doc/android_cn_guide.md index d1af05dc16cfda475d77372307c18da55bafb223..3ef568ba8286c08a783aded66852b1fbf9d6d261 100644 --- a/Doc/android_cn_guide.md +++ b/Doc/android_cn_guide.md @@ -23,7 +23,7 @@ dependencies { @Override public void onCreate() { ... - DoraemonKit.install(application) + DoraemonKit.install(application) // H5任意门功能需要,非必须 DoraemonKit.setWebDoorCallback(new WebDoorManager.WebDoorCallback() { @@ -109,4 +109,4 @@ public void onCreate() { DoraemonKit.install(application, kits); ... } -``` \ No newline at end of file +``` diff --git a/Doc/android_en_guide.md b/Doc/android_en_guide.md index 767a3ea3314add96a342670288c00e43bf983849..88c8f1ac4c5ba000808b71199b92187a2d86c89a 100644 --- a/Doc/android_en_guide.md +++ b/Doc/android_en_guide.md @@ -11,7 +11,7 @@ dependencies { } ``` -Please use [the lastest release](android-ReleaseNotes.md)。 +Please use [the latest release](android-ReleaseNotes.md)。 @@ -109,4 +109,4 @@ public void onCreate() { DoraemonKit.install(application, kits); ... } -``` \ No newline at end of file +``` diff --git a/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/DoraemonLoadAnalyze b/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/DoraemonLoadAnalyze index fd1d9b72397a64661dae3d849434f0c0572bc240..34104efdb4c5b5a0e965fd9a2a3ae1dfaf088386 100755 Binary files a/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/DoraemonLoadAnalyze and b/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/DoraemonLoadAnalyze differ diff --git a/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/Info.plist b/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/Info.plist index a580784d32242e2c94f59c9e59387644169eab6f..c43fb46c364f8a84426f5645802162f54a09d1cb 100644 Binary files a/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/Info.plist and b/iOS/DoraemonKit/Framework/DoraemonLoadAnalyze.framework/Info.plist differ diff --git a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h index 8d595a3429860f537f11d6e295b5af1e1cea0ac1..d13813ba19a2a11a52574ede1eb19b6aecdf9811 100644 --- a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h +++ b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h @@ -15,12 +15,16 @@ typedef void (^DoraemonH5DoorBlock)(NSString *); - (void)install; +- (void)installWithCustomBlock:(void(^)())customBlock; + @property (nonatomic,strong) NSMutableArray *dataArray; @property (nonatomic, copy) DoraemonH5DoorBlock h5DoorBlock; - (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName; +- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName; + - (void)addStartPlugin:(NSString *)pluginName; - (void)addH5DoorBlock:(void(^)(NSString *h5Url))block; diff --git a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m index 0d3516f959a056ba7ce79f436837280f06b246c6..6342cc8ba2270fdbc08408c1c1cfc75c67a6054c 100644 --- a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m +++ b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m @@ -55,6 +55,12 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); } - (void)install{ + [self installWithCustomBlock:^{ + //什么也没发生 + }]; +} + +- (void)installWithCustomBlock:(void(^)())customBlock{ for (int i=0; i<_startPlugins.count; i++) { NSString *pluginName = _startPlugins[i]; Class pluginClass = NSClassFromString(pluginName); @@ -63,8 +69,10 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); [plugin pluginDidLoad]; } } - + [self initData]; + customBlock(); + [self initEntry]; //根据开关判断是否收集Crash日志 @@ -192,6 +200,10 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); } } +- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName{ + [self unregisterPlugin:pluginName withModule:moduleName]; +} + - (void)registerPluginArray:(NSMutableArray*)array withModule:(NSString*)moduleName{ if (!_dataArray){ _dataArray = [[NSMutableArray alloc]init]; @@ -202,6 +214,27 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); [_dataArray addObject:dic]; } +- (void)unregisterPlugin:(NSString*)pluginName withModule:(NSString*)moduleName{ + if (!_dataArray){ + return; + } + id object; + for (object in _dataArray) { + NSString *tempModuleName = [((NSMutableDictionary *)object) valueForKey:@"moduleName"]; + if ([tempModuleName isEqualToString:moduleName]) { + NSMutableArray *tempPluginArray = [((NSMutableDictionary *)object) valueForKey:@"pluginArray"]; + id pluginObject; + for (pluginObject in tempPluginArray) { + NSString *tempPluginName = [((NSMutableDictionary *)pluginObject) valueForKey:@"pluginName"]; + if ([tempPluginName isEqualToString:pluginName]) { + [tempPluginArray removeObject:pluginObject]; + return; + } + } + } + } +} + - (void)hiddenDoraemon{ _entryView.hidden = YES; } diff --git a/iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj/project.pbxproj b/iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj/project.pbxproj index 3ff02fcc2cd5b632db0108e6e47fa4867f5adc44..5e0dd794b51eb1dbba79c350257069364659074a 100644 --- a/iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj/project.pbxproj +++ b/iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj/project.pbxproj @@ -568,7 +568,7 @@ GCC_PREFIX_HEADER = "DoraemonKitDemo/DoraemonKitDemo-PrefixHeader.pch"; INFOPLIST_FILE = DoraemonKitDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = yixiang.DoraemonKitDemoC; + PRODUCT_BUNDLE_IDENTIFIER = yixiang.DoraemonKitDemoXXX; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -586,7 +586,7 @@ GCC_PREFIX_HEADER = "DoraemonKitDemo/DoraemonKitDemo-PrefixHeader.pch"; INFOPLIST_FILE = DoraemonKitDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = yixiang.DoraemonKitDemoC; + PRODUCT_BUNDLE_IDENTIFIER = yixiang.DoraemonKitDemoXXX; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m b/iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m index 79dc7424e7852f5c635b8e2ff91c47860e5d3fb7..d4b0900e4748feacaa4a6b6294dfca18272e92a8 100644 --- a/iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m +++ b/iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m @@ -27,11 +27,15 @@ } [[DoraemonManager shareInstance] addPluginWithTitle:@"测试插件" icon:@"doraemon_default" desc:@"测试插件" pluginName:@"TestPlugin" atModule:@"业务工具"]; [[DoraemonManager shareInstance] addStartPlugin:@"StartPlugin"]; + [[DoraemonManager shareInstance] install]; // [[DoraemonManager shareInstance] addH5DoorBlock:^(NSString *h5Url) { // NSLog(@"使用自带容器打开H5链接: %@",h5Url); // }]; - [[DoraemonManager shareInstance] install]; - + // 例子:移除 GPS Mock +// [[DoraemonManager shareInstance] installWithCustomBlock:^{ +// [[DoraemonManager shareInstance] removePluginWithPluginName:@"DoraemonGPSPlugin" atModule:@"常用工具"]; +// }]; + for (int i=0; i<10; i++) { // DDLogInfo(@"点击添加埋点22222"); } diff --git a/iOS/DoraemonLoadAnalyzeDemo/DoraemonLoadAnalyzeDemo.xcodeproj/project.pbxproj b/iOS/DoraemonLoadAnalyzeDemo/DoraemonLoadAnalyzeDemo.xcodeproj/project.pbxproj index 2bb2aee3fd841f6a9ea75ce095c267636312e7e6..5f7d7aad9a5cc43955225f5baa12fc7d1a96ea79 100644 --- a/iOS/DoraemonLoadAnalyzeDemo/DoraemonLoadAnalyzeDemo.xcodeproj/project.pbxproj +++ b/iOS/DoraemonLoadAnalyzeDemo/DoraemonLoadAnalyzeDemo.xcodeproj/project.pbxproj @@ -430,7 +430,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 2M632FEG3H; + DEVELOPMENT_TEAM = RSV7DQ57L7; INFOPLIST_FILE = DoraemonLoadAnalyzeDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -438,7 +438,7 @@ "@executable_path/Frameworks", ); OTHER_LDFLAGS = "-ObjC"; - PRODUCT_BUNDLE_IDENTIFIER = com.javer.yi.DoraemonLoadAnalyzeDemo; + PRODUCT_BUNDLE_IDENTIFIER = com.javer.yi.DoraemonLoadAnalyzeDemoXXXX; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -449,7 +449,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 2M632FEG3H; + DEVELOPMENT_TEAM = RSV7DQ57L7; INFOPLIST_FILE = DoraemonLoadAnalyzeDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -457,7 +457,7 @@ "@executable_path/Frameworks", ); OTHER_LDFLAGS = "-ObjC"; - PRODUCT_BUNDLE_IDENTIFIER = com.javer.yi.DoraemonLoadAnalyzeDemo; + PRODUCT_BUNDLE_IDENTIFIER = com.javer.yi.DoraemonLoadAnalyzeDemoXXXX; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; };