我正在尝试找出如何将日志信息从我的iOS框架发送到我的iOS应用。在我的iOS应用程序中,我具有Crashlytics设置,并且希望每当从该应用程序和iOS框架获取一些日志时都使用Crashlytics.sharedInstance().recordError(error)
。
我通读了多个答案,提到Crashlytics在App中只能初始化一次,不建议在框架中再次初始化。 (例如Link 1),Link 2,Link 3)
有人针对这种要求有可行的解决方案吗?
只需在appdelegate中创建实例,然后在您的框架中使用它们。不要在框架中实例化Crashlytics,只在其中使用它们。
一种选择是将错误的日志记录委派给您的应用程序。这使它更加灵活。
例如:
protocol MyFrameworkErrorHandlingDelegate: AnyObject {
func didReceiveError(_ error: error)
}
然后您可以在您的应用程序中为此创建默认扩展名
extension MyFrameworkErrorHandlingDelegate {
func didReceiveError(_ error: error) {
Crashlytics.sharedInstance().recordError(error)
}
}
这种方法的问题在于确定在哪里使用它或在哪里分配委托,这取决于您的框架做什么以及您的应用程序如何使用该框架。