ios - 如何使用自己的框架在 iOS 应用程序中正确设置 Crashlytics 以便从框架中获取日志和密钥?
问题描述
我有一个 Xcode 项目,其中数据层在一个框架中分离,以便在主 iOS 应用程序和 Today 扩展之间共享。我已按照此处的一般设置说明和此处的多个目标说明进行操作。我确实从应用程序和数据框架中获得了崩溃报告。但是,在崩溃报告中,我只找到主应用程序中的日志 ( CLSLog(@"Bla bla")
) 和密钥 ( [CrashlyticsKit setObjectValue:@"value" forKey:@"key"]
)。来自数据框架的日志和密钥不会记录在崩溃报告中,即使我已验证代码通过它们。举个简单的例子——用户登录,我从数据框架中设置用户标识符;然后在应用程序中发生崩溃并且在崩溃报告中没有用户标识符。
我已经看到这个主题,其中建议不要将 Crashlytics 包含在旨在作为第三方库分发的框架中。就我而言,这不是一个问题,它还暗示了在应用程序和框架中都包含 Crashlytics 的可能性。
所以我的问题是:
- 是否有可能从主应用程序和框架中获取包含日志记录和密钥的崩溃报告?
- 如果是 - 正确的设置是什么?
解决方案
Fabric/Firebaser 在这里 -
引用Mike Bonnell的话:
当然,我们的 SDK 只支持初始化一次。在框架和应用程序中初始化会导致冲突。您和应用程序开发人员将拥有不同的 API 密钥,并且无法要求应用程序开发人员授予您的 SDK 与您的框架共享其代码中的堆栈跟踪的权限。
将我们包含在您的框架中会给您的框架和使用它的任何人带来问题,所以这就是我说不要包含我们的原因!完全理解 SDK 开发人员希望看到此支持。
推荐阅读
- flutter - Flutter:如何一一显示来自 Firestore 的帖子?
- javascript - firefox 扩展无法识别 axios 命令
- javascript - Uncaught (in promise) TypeError: Failed to fetch Nextjs PWA using next-pwa in Chrome
- html - 为什么 Bootstrap 导航栏中的按钮未正确垂直对齐
- python - 仅使用位运算符实现转码
- mysql - 如果rank()在sql中重复某些值,如何从6个值中选择前5个值?
- python - df 对象列表到单个值
- k6 - 如何在 k6 中使用多个自定义标头发出简单的 POST 请求
- python - 更改两行的顺序时,我得到 TypeError: 'numpy.ndarray' object is not callable
- python - 当实际响应包含数据时,Zeep 4.0 是否应该返回 None 结果?