提交 b5b46f83 编写于 作者: Y yanqizhou

添加应用内数据库调试功能

上级 2ba2a1e7
......@@ -67,6 +67,14 @@ Pod::Spec.new do |s|
ss.dependency 'WeexSDK'
ss.dependency 'WXDevtool'
end
s.subspec 'WithDatabase' do |ss|
ss.source_files = 'iOS/DoraemonKit/Src/Database/*{.h,.m}'
ss.pod_target_xcconfig = {
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) DoraemonWithDatabase'
}
ss.dependency 'YYDebugDatabase'
end
s.dependency 'PNChart'
s.dependency 'BSBacktraceLogger'
......
......@@ -49,6 +49,7 @@ DoraemonKit 是一个功能集合面板,能够让每一个 App 快速接入一
7. **【清除本地数据】** 一键删除沙盒中所有数据;
8. **【NSLog】** 把所有 NSLog 信息打印到UI界面,避免没有开发证书无法调式的尴尬;
9. **【Lumberjack】** 每一条 CocoaLumberjack 的日志信息,都在在 App 的界面中显示出来,再也不需要导出日志这么麻烦。
10. **【YYDebugDatabase】** 通过网页方便快捷的操作应用内数据库,让数据库d调试变得非常优雅。
### 二、性能检测
......
......@@ -235,4 +235,10 @@
"UIWebView" = "UIWebView";
"显示入口" = "Show Doraemon";
"隐藏入口" = "Hidden Doraemon";
"数据库" = "Database";
"开启服务" = "start server";
"关闭服务" = "stop server";
"温馨提示" = "tips";
"你可以通过下面地址访问" = "access server address";
"服务已关闭" = "server is off";
}
......@@ -38,6 +38,8 @@ typedef NS_ENUM(NSUInteger, DoraemonManagerPluginType) {
DoraemonManagerPluginType_DoraemonNSLogPlugin,
// 日志显示
DoraemonManagerPluginType_DoraemonCocoaLumberjackPlugin,
// 数据库工具
DoraemonManagerPluginType_DoraemonDatabasePlugin,
#pragma mark - 性能检测
// 帧率监控
......
......@@ -163,7 +163,7 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *);
[DoraemonWeexLogDataSource shareInstance];
[DoraemonWeexInfoDataManager shareInstance];
#endif
}
......@@ -194,6 +194,10 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *);
[self addPluginWithPluginType:DoraemonManagerPluginType_DoraemonCocoaLumberjackPlugin];
#endif
#if DoraemonWithDatabase
[self addPluginWithPluginType:DoraemonManagerPluginType_DoraemonDatabasePlugin];
#endif
#pragma mark - 性能检测
[self addPluginWithPluginType:DoraemonManagerPluginType_DoraemonFPSPlugin];
[self addPluginWithPluginType:DoraemonManagerPluginType_DoraemonCPUPlugin];
......@@ -466,6 +470,14 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *);
@{kAtModule:DoraemonLocalizedString(@"常用工具")}
],
@(DoraemonManagerPluginType_DoraemonDatabasePlugin) : @[
@{kTitle:@"YYDatabase"},
@{kDesc:DoraemonLocalizedString(@"数据库")},
@{kIcon:@"doraemon_database"},
@{kPluginName:@"DoraemonDatabasePlugin"},
@{kAtModule:DoraemonLocalizedString(@"常用工具")}
],
// 性能检测
@(DoraemonManagerPluginType_DoraemonFPSPlugin) : @[
@{kTitle:DoraemonLocalizedString(@"帧率")},
......
//
// DoraemonDatabasePlugin.h
// AFNetworking
//
// Created by wentian on 2019/7/11.
//
#import <Foundation/Foundation.h>
#import "DoraemonPluginProtocol.h"
NS_ASSUME_NONNULL_BEGIN
@interface DoraemonDatabasePlugin : NSObject<DoraemonPluginProtocol>
@end
NS_ASSUME_NONNULL_END
//
// DoraemonDatabasePlugin.m
// AFNetworking
//
// Created by wentian on 2019/7/11.
//
#import "DoraemonDatabasePlugin.h"
#import "DoraemonUtil.h"
#import "DoraemonDatabaseViewController.h"
@implementation DoraemonDatabasePlugin
- (void)pluginDidLoad{
DoraemonDatabaseViewController *vc = [[DoraemonDatabaseViewController alloc] init];
[DoraemonUtil openPlugin:vc];
}
@end
//
// DoraemonDatabaseViewController.h
// AFNetworking
//
// Created by wentian on 2019/7/11.
//
#import "DoraemonBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface DoraemonDatabaseViewController : DoraemonBaseViewController
@end
NS_ASSUME_NONNULL_END
//
// DoraemonDatabaseViewController.m
// AFNetworking
//
// Created by wentian on 2019/7/11.
//
#import "DoraemonDatabaseViewController.h"
#import "DoraemonDefine.h"
#import "DebugDatabaseManager.h"
@interface DoraemonDatabaseViewController ()
@property (nonatomic, strong) UIButton *startButton;
@property (nonatomic, strong) UILabel *tipLabel;
@property (nonatomic, strong) UILabel *stateLable;
@end
@implementation DoraemonDatabaseViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"YYDebugDatabase";
_startButton = [UIButton buttonWithType:UIButtonTypeCustom];
_startButton.frame = CGRectMake(15, self.bigTitleView.doraemon_bottom + 50, self.view.doraemon_width - 40, 50);
_startButton.backgroundColor = [UIColor doraemon_colorWithHex:0x4889db];
[_startButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_startButton addTarget:self action:@selector(startServer) forControlEvents:UIControlEventTouchUpInside];
_startButton.layer.cornerRadius = 4;
_startButton.layer.masksToBounds = YES;
[self.view addSubview:_startButton];
_tipLabel = [[UILabel alloc] initWithFrame:CGRectMake(_startButton.doraemon_left, _startButton.doraemon_bottom + 40, _startButton.doraemon_width, 150)];
_tipLabel.textColor = [UIColor doraemon_colorWithHex:0x808080];
_tipLabel.numberOfLines = 0;
[self.view addSubview:_tipLabel];
[self updateStateDesc];
}
- (void)startServer {
if ([[DebugDatabaseManager shared] isRunning]) {
[[DebugDatabaseManager shared] stop];
}else {
[[DebugDatabaseManager shared] startServerOnPort:9002];
}
[self updateStateDesc];
}
- (void)updateStateDesc {
BOOL isrunning = [[DebugDatabaseManager shared] isRunning];
[_startButton setTitle:isrunning ? DoraemonLocalizedString(@"关闭服务") : DoraemonLocalizedString(@"开启服务") forState:UIControlStateNormal];
NSString *tips = @"";
if (isrunning) {
tips = [NSString stringWithFormat:@"%@:\n\n%@:\n\n%@", DoraemonLocalizedString(@"温馨提示"), DoraemonLocalizedString(@"你可以通过下面地址访问"), [DebugDatabaseManager shared].serverURL];
}else {
tips = [NSString stringWithFormat:@"%@:\n\n%@!", DoraemonLocalizedString(@"温馨提示"), DoraemonLocalizedString(@"服务已关闭")];
}
_tipLabel.text = tips;
}
- (BOOL)needBigTitleView{
return YES;
}
@end
......@@ -394,16 +394,28 @@
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-resources.sh",
"${SRCROOT}/Pods/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/DoraemonKit/DoraemonKit.bundle",
"${PODS_ROOT}/WeexSDK/pre-build/native-bundle-main.js",
"${PODS_ROOT}/WeexSDK/pre-build/weex-main-jsfm.js",
"${PODS_ROOT}/WeexSDK/pre-build/weex-polyfill.js",
"${PODS_ROOT}/WeexSDK/pre-build/weex-rax-api.js",
"${PODS_ROOT}/WeexSDK/ios/sdk/WeexSDK/Resources/wx_load_error@3x.png",
"${PODS_ROOT}/YYDebugDatabase/DebugDatabase/Web.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DoraemonKit.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Web.bundle",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-resources.sh\"\n";
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-resources.sh\"\n";
showEnvVarsInLog = 0;
};
4F099CCEC2895A53433BFD37 /* [CP] Check Pods Manifest.lock */ = {
......@@ -430,7 +442,7 @@
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-frameworks.sh",
"${SRCROOT}/Pods/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-frameworks.sh",
"${PODS_ROOT}/../../DoraemonKit/Framework/DoraemonLoadAnalyze.framework",
);
name = "[CP] Embed Pods Frameworks";
......@@ -439,7 +451,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-frameworks.sh\"\n";
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-DoraemonKitDemo/Pods-DoraemonKitDemo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
......
......@@ -12,8 +12,8 @@ post_install do |installer|
end
target :'DoraemonKitDemo' do
#pod 'DoraemonKit', :subspecs => ['Core','WithLogger','WithGPS','WithLoad','WithWeex'], :path => '../../'
pod 'DoraemonKit', :subspecs => ['Core','WithLogger','WithGPS','WithLoad'], :path => '../../'
pod 'DoraemonKit', :subspecs => ['Core','WithLogger','WithGPS','WithLoad','WithWeex', 'WithDatabase'], :path => '../../'
# pod 'DoraemonKit', :subspecs => ['Core','WithLogger','WithGPS','WithLoad'], :path => '../../'
pod 'AFNetworking','2.6.3'
#pod 'SDWebImage','3.7.6'
pod 'SDWebImage', '5.0.6'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册