我希望能够对从客户端收到的堆栈跟踪进行模糊处理。无论他们使用的是Apple的工具还是Crashlytics或任何其他提供商,该服务都会对其代码进行模糊处理,但是由于我们是第三方库,因此不会对堆栈跟踪中的代码进行模糊处理。
我已经阅读了Apple的技术说明(https://developer.apple.com/library/archive/technotes/tn2151/_index.html),但是它非常着重于应用程序开发人员,其撰写方式似乎是应用程序开发人员比库开发人员更希望了解崩溃。我看过其他几篇文章,觉得它们有同样的缺点。 AFAICT服务不提供对.crash文件的访问,这是Apple工具将支持的唯一格式,但是即使我拥有它们,UUID也不会在应用程序的.crash和库位代码的.dSYM和因此该工具将拒绝取消符号化(我没有尝试过,但这就是文档所暗示的意思。)
我还感到困惑的是,当我尝试自己时无法生成相同类型的堆栈跟踪,例如,客户端向我发送了一个堆栈跟踪,其中我们的代码显示为“ _hidden”,但是当我生成崩溃时,我自己发送到了相同的堆栈跟踪平台上显示“ OUTLINED_FUNCTION”。
我将按照技术说明中的说明使用atos
逐行进行模糊处理,但是在从崩溃信息(例如Crashlytics)收到的崩溃信息中,我看不到任何加载地址。
发布图书馆时,我正在考虑关闭模糊处理,但是此决定可能会产生法律后果,因此我无法在短期内进行更改。
简而言之,如果我有创建框架所需的.dSYM文件和来自Crashlytics的堆栈跟踪,如何从我的库中对堆栈跟踪的一部分进行模糊处理?