ZDDebugKit 1.0.0

ZDDebugKit 1.0.0

dragonLi 维护。



  • 作者:
  • DevDragonli

ZDDebugKit

iOS 项目 Debug 调试辅助悬浮球组件

务必按照下文的 Installation 建议引入项目,不建议引入线上环境。

组件的通用性设计

完全解耦,菜单和点击行为由宿主工程处理,组件底层只提供响应事件和一级菜单展示的界面维护。

  • **一级主菜单**由宿主工程完全自定义并列表展示

    • 根据工程不同业务方向,拆分不同 item 可选菜单(账户,视频,分享等)

    • 遵守菜单协议即可自动集成一级主菜单

      • 可参考 Demo 或者下文的Exapmle部分
  • 一级菜单满足不了项目需求怎么办

    • 如果项目需要更多的开关或者其他更多菜单,可以在对应 ServiceClass 的事件派发处理中实现项目需要的视图及事件处理即可。
    • 一级菜单对应项目业务层划分,二级菜单为一级菜单的不同入口
  • 宿主工程的协议实现类细节

    • 主实现类为一个即可,负责一级菜单及一级实现派分,不建议都写一个类,可采取分类,或者单独为一个桥接组件。
    • 如果项目实现组件化,可中间件解耦派分,实现 debug 功能业务各有归属。

致力于解决的场景

业务辅助工具,为 QA 测试/RD 方便调试节省时间,及快捷入口等,多版本迭代后,有些 debug 功能可以 PM 评估 OK 后,引入线上版本。

  • 项目的多语言支持

    • 如果前往设备设置语言切换,来回较为麻烦,QA 测试,只需要关注与 APP 内文案正确展示,并不关注是否真正为中文,可提供一键切换功能。
  • APP 引导页

    • 属于非首次安装不再出现,端上可以重置状态,而不需要再次安装(重新安装并无必要)。
  • 对于 APP 本地/远端笔记无法一键删除

    • 如果需要测试远端笔记首次安装加载过程,则必须卸载 APP,再重新安装,如果端上通过 DEBUG Menu 提供,则很快速的处理。
  • 更多

安装

ZDDebugKit 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

// 默认二进制集成
pod 'ZDDebugKit','~>1.0.0',:configurations => ['Debug']

// 源码方式集成 
pod 'ZDDebugKit/source','~>1.0.0',:configurations => ['Debug']

示例

要运行示例项目,请克隆仓库,然后从示例目录运行 pod install

  • 初始化悬浮球

  • 实现扩展菜单协议


#ifdef DEBUGMENU

#import <ZDDebugKit/ZDDebugKit.h>

@interface TestService : NSObject <ZDDebugKitProtocol>

@end

NS_ASSUME_NONNULL_END

@implementation TestService

/// 也可以AppDelegate入口设置

+ (void)load {
     [ZDDEBUGMENU showDebugMenuWithServiceClass:self Title:@"Debug菜单中心" autoCloseEdge:YES];   
}

+ (NSArray <NSString *>*)operationItems {
    
   return [NSArray arrayWithObjects:
    @"🤡 点击即可切换:展示或隐藏(FLEX工具)",
    @"🤠 一键删除本地所有笔记文件(⚠️会强制退出APP)",
    @"😎 一键删除远端所有笔记 ",
    @"👽 一键删除所有笔记文件(本地和远端 ⚠️会强制退出APP)",
    @"😁 一键切换APP中英文(立即生效)",
    nil];
}

/// 事件派分 接收处理
+ (void)debugActionWithIndexPath:(NSIndexPath *)indexPath
                   completeBlock:(void (^)(void))completeBlock {
        NSInteger selectRow = indexPath.row;
    // 对应不同下标,处理对应菜单事件即可
    	// 扩展业务,也为此处扩展
}
#endif


作者

DevdragonLi, [email protected]

许可证

ZDDebugKit 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。