Files
peko-ios/YuMi/Global/BuglyManager_README.md

3.3 KiB

BuglyManager 使用说明

概述

BuglyManager 是一个统一的 Bugly 管理类,封装了所有 Bugly 相关操作,提供统一的错误上报和性能监控接口。

主要功能

1. 统一错误上报

  • 业务错误上报
  • 网络错误上报
  • 内购错误上报
  • 自定义错误上报

2. 卡顿监听

  • 自动检测主线程卡顿
  • 支持代理回调通知
  • 可配置卡顿阈值

3. 性能监控

  • 主线程阻塞检测
  • 异常退出检测
  • 自定义日志级别

使用方法

1. 初始化配置

// 在 AppDelegate 中配置
#ifdef DEBUG
    [[BuglyManager sharedManager] configureWithAppId:@"c937fd00f7" debug:YES];
#else
    [[BuglyManager sharedManager] configureWithAppId:@"8627948559" debug:NO];
#endif

2. 设置代理监听卡顿

// 在需要监听卡顿的类中
@interface YourClass : NSObject <BuglyManagerDelegate>
@end

@implementation YourClass
- (void)setupBuglyDelegate {
    [BuglyManager sharedManager].delegate = self;
}

- (void)buglyManager:(BuglyManager *)manager didDetectLag:(NSTimeInterval)duration {
    NSLog(@"检测到卡顿,持续时间: %.2f 秒", duration);
    // TODO: 实现卡顿通知逻辑
}
@end

3. 错误上报

业务错误上报

NSDictionary *context = @{
    @"page": @"HomePage",
    @"action": @"loadData"
};

[[BuglyManager sharedManager] reportBusinessError:@"数据加载失败" 
                                             code:1001 
                                         context:context];

网络错误上报

NSDictionary *userInfo = @{
    @"requestParams": @{@"userId": @"12345"},
    @"responseData": @"服务器错误"
};

[[BuglyManager sharedManager] reportNetworkError:@"user123" 
                                            api:@"user/profile" 
                                            code:500 
                                        userInfo:userInfo];

内购错误上报

NSDictionary *context = @{
    @"retryCount": @3,
    @"productId": @"com.yumi.coin100"
};

[[BuglyManager sharedManager] reportIAPError:@"user123" 
                               transactionId:@"txn_123456" 
                                     orderId:@"order_789" 
                                      status:2 
                                     context:context];

重构完成情况

已完成

  1. 创建 BuglyManager.hBuglyManager.m
  2. 修改 AppDelegate+ThirdConfig.m 使用 BuglyManager
  3. 修改 IAPManager.m 使用 BuglyManager
  4. 修改 HttpRequestHelper.m 使用 BuglyManager
  5. 修改 GiftComboManager.m 使用 BuglyManager
  6. 创建使用示例和文档

🔄 进行中

  1. 修改 XPGiftPresenter.m 使用 BuglyManager

📋 待完成

  1. 测试验证所有功能
  2. 完善卡顿通知逻辑
  3. 性能优化

优势

  1. 统一管理:所有 Bugly 相关操作集中在一个类中
  2. 降低耦合:其他模块无需直接引入 Bugly 头文件
  3. 易于维护:统一的接口和错误处理逻辑
  4. 功能扩展:支持卡顿监听和自定义通知
  5. 向后兼容:保持现有功能完全不变

注意事项

  1. 确保在真机环境下编译,模拟器可能无法正确导入 Bugly 头文件
  2. 卡顿监听功能需要在实际设备上测试
  3. 错误上报是异步操作,不会阻塞主线程
  4. 建议在 AppDelegate 中尽早初始化 BuglyManager