我有一个iOS框架目标,我需要为它集成Crash报告系统。
所以Crashlytics看起来不错,但是
此Xcode项目没有任何Mac或iOS目标
那么,有没有办法将Crashlytics直接集成到iOS框架中?
答案 0 :(得分:5)
感谢Mike Bonnell your comment here,其中说:
当然,我们的SDK仅支持初始化一次。在框架和应用程序中初始化会导致冲突。您和应用程序开发人员将拥有不同的API密钥,并且无法让应用程序开发人员授予您的SDK权限,以便与您的框架共享代码中的堆栈跟踪。在我们的框架中包含我们会给您的框架和使用它的任何人带来问题,这就是为什么我说不要包含我们!完全理解SDK开发人员希望看到这种支持。
答案 1 :(得分:0)
按照链接中提供的以下步骤整合Crashlytics。
最强大,最轻的减重报告解决方案。 花费更少的时间寻找和更多的时间来解决崩溃问题。 Crashlytics在iOS和Android上都被评为#1性能SDK,它提供了深入且可操作的见解,甚至是应用程序崩溃的确切代码行。
虽然Crashlytics为您提供了强大的崩溃报告功能,但只需再点击一次,您就可以启用实时分析,帮助您了解应用中发生的情况。 Fabric的分析引擎可以深入了解您的核心目标,例如增长,保留和参与度。最后,您不需要分析的分析。
希望它有所帮助。
答案 2 :(得分:0)
这里有一个解决方案,允许您的lib用户使用crashlytics进行日志记录。
您的lib可以提供一个默认的日志函数,该函数调用NSLog或Print或所需的任何机制。而且您的库还提供了一种机制来覆盖所使用的打印方法。
例如,假设您在库中定义了一个Logger类:
public class Logger {
private static var printer: (message: String) -> Void = nil
public static func setPrinter(newPrinter: (message: String) -> Void) {
Logger.printer = newPrinter
}
debug(format: String, ...) {
// convert params into a single formatted:String, then ...
if(Logger.printer != nil) {
Logger.printer(message: formatted)
} else {
print(formatted)
// or
NSLog(formatted)
}
}
}
现在,当人们使用您的图书馆时,他们将获得您实施的默认打印。但是,如果他们有自己的日志记录解决方案,例如crashlytics,则可以这样覆盖它:
// in their App code
Logger.setPrinter((message:String) -> Void {
CLSNSLog(message)
});