簡體   English   中英

如何將Crashlytics集成到iOS框架目標中?

[英]How to integrate Crashlytics into an iOS framework target?

我有一個iOS框架目標,我需要為它集成Crash報告系統。

所以Crashlytics看起來不錯,但是

此Xcode項目沒有任何Mac或iOS目標

那么,有沒有辦法將Crashlytics直接集成到iOS框架中?

感謝Mike Bonnell這里的評論 ,其中說:

當然,我們的SDK僅支持初始化一次。 在框架和應用程序中初始化會導致沖突。 您和應用程序開發人員將擁有不同的API密鑰,並且無法讓應用程序開發人員授予您的SDK權限,以便與您的框架共享代碼中的堆棧跟蹤。 在我們的框架中包含我們將導致您的框架和使用它的任何人的問題,所以這就是為什么我說不包括我們! 完全理解SDK開發人員希望看到這種支持。

這里有一個解決方案,允許您的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)
});

按照鏈接中提供的以下步驟集成Crashlytics。

面料整合

最強大,最輕量級的重量損失報告解決方案。 花費更少的時間尋找和更多的時間來解決崩潰問題。 在iOS和Android上被命名為#1性能SDK,Crashlytics提供深入且可操作的見解,甚至是應用程序崩潰的確切代碼行。

雖然Crashlytics為您提供了強大的崩潰報告功能,但只需再點擊一次,您就可以啟用實時分析,幫助您了解應用中發生的情況。 Fabric的分析引擎可以深入了解您的核心目標,例如增長,保留和參與度。 最后,您不需要分析分析。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM