APCrashLogParamHelper.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. //
  2. // APCrashLogParamHelper.h
  3. // APRemoteLogging
  4. //
  5. // Created by NianXi on 16/6/16.
  6. // Copyright © 2016年 Alipay. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <mach/mach.h>
  10. #import <pthread.h>
  11. @interface APCrashLogParamHelper : NSObject
  12. /**
  13. * 闪退发生时最近浏览的一个H5页面
  14. *
  15. * @return NSString型 URL , 可能为空
  16. */
  17. + (NSString *_Nullable)lastWebURL;
  18. /**
  19. * 已生效的hotpatch脚本信息
  20. *
  21. * @return NSString型 多个脚本以"|"分隔,如 ,可能为空
  22. */
  23. + (NSString *_Nullable)executedPatchsInfo;
  24. /**
  25. * iam扩展信息
  26. *
  27. * @return NSString型 可能为空
  28. */
  29. + (NSString *_Nullable)ebcContextInfo;
  30. + (NSString *_Nullable)ebcContextInfo:(void *_Nullable)ucontext;
  31. /**
  32. * 已经加载的bundle信息
  33. *
  34. * @return NSString型 可能为空
  35. */
  36. + (NSString *_Nullable)bundleInfo;
  37. /**
  38. * 进程存活时间,单位秒
  39. *
  40. * @return time_t 存活秒数
  41. */
  42. + (time_t)survivalTime;
  43. /**
  44. 发生闪退的线程的Queue名称
  45. @return NSString * 队列名,可能为空
  46. */
  47. + (NSString *_Nullable)crashThreadQueueName:(thread_t)thread;
  48. /**
  49. 发生闪退的线程的线程名
  50. @return NSString * 线程名,可能为空
  51. */
  52. + (NSString *_Nullable)crashThreadName:(thread_t)thread;
  53. /**
  54. * 字典格式化 转成 key=value^key=value^key=value 格式字符串
  55. *
  56. * @param dic 字典
  57. *
  58. * @return 格式化后的字符串
  59. */
  60. + (NSString *_Nullable)convertToLogFromDic:(NSDictionary *_Nonnull)dic;
  61. /**
  62. * 数组格式化 转成 a|b|c|d 格式字符串
  63. *
  64. * @param array 数组
  65. *
  66. * @return 格式化后的字符串
  67. */
  68. + (NSString *_Nullable)convertToLogFromArray:(NSArray *_Nonnull)array;
  69. /**
  70. * 用于日志的可读fetch状态字符
  71. *
  72. * @return NSString *型 用于日志的可读fetch状态字符
  73. */
  74. + (NSString *_Nullable)backgroundFetchStateReadableString;
  75. /**
  76. * 用于日志的可读hotspot状态字符
  77. *
  78. * @return NSString *型 用于日志的可读hotspot状态字符
  79. */
  80. + (NSString *_Nullable)hotspotHelperStateReadableString;
  81. /**
  82. * 用于日志的可读healthkit状态字符
  83. *
  84. * @return NSString *型 用于日志的可读healthkit状态字符
  85. */
  86. + (NSString *_Nullable)healthkitStateReadableString;
  87. + (NSString *_Nullable)pushStateReadableString;
  88. + (NSString *_Nullable)watchStateReadableString;
  89. + (NSString *_Nullable)voipStateReadableString;
  90. /**
  91. * 用于日志的可读函数覆盖率开关状态字符
  92. *
  93. * @return NSString *型 用于日志的可读函数覆盖率开关状态字符
  94. */
  95. + (NSString *_Nullable)functionCoverageState;
  96. /**
  97. * 获取非空的前后台状态值(通过UIApplicationState辅助二次校准)
  98. *
  99. * @return 非空的前后台状态字符串
  100. */
  101. + (nonnull NSString *)applicationStateReadableString;
  102. /**
  103. * 当前appid
  104. *
  105. * @return NSString *型
  106. */
  107. + (NSString *_Nullable)currentAppId;
  108. /**
  109. * 当前H5应用的唯一标识(格式为:appid_version_releasetype)
  110. *
  111. * @return NSString *型
  112. */
  113. + (NSString *_Nullable)currentH5AppUniqueId;
  114. /**
  115. * 当前内存使用大小信息,可能为空
  116. *
  117. * @return NSString *型
  118. */
  119. + (NSString *_Nullable)usedMemory;
  120. @end