[英]How to use Crashlytics with iOS / OS X today view extensions?
由於今天擴展程序以一個獨立的進程運行,我確信它們不會記錄任何崩潰的開箱即用。 我假設我們需要分別在小部件上初始化Crashlytics。 例如,在TodayViewController
的viewDidLoad
方法中。
Crashlytics支持與我聯系並提供了這些步驟。 我測試了它們,它現在適用於我的iOS 8應用程序。
將Crashlytics Run Script Build Phase添加到您的擴展程序的目標(復制/粘貼您添加到主應用程序中的相同)
將Crashlytics.framework
添加到擴展程序的鏈接庫(例如,只需在其文件檢查器中檢查擴展目標)
將Crashlytics.startWithAPIKey("yourApiKey")
添加到擴展程序的視圖控制器的initWithCoder
方法中。 (在Apple今天的擴展模板中,默認情況下稱為TodayViewController
)
>如果你還沒有initWithCoder
方法,那么它之后應該是這樣的:
required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) Crashlytics.startWithAPIKey("yourApiKey") }
這是Twitter自己的實施指南:
https://twittercommunity.com/t/integrate-fabric-crashlytics-with-ios-8-extension/28905
因此,復制庫,例如,如果您正在使用CocoaPods,則可以將Fabric和Crashlytics添加到Extension目標:
在Podfile中:
target :TodayExtension do
pod 'Fabric'
pod 'Crashlytics'
end
並運行pod install
。 並且不要忘記將Build Active Architecture Only
設置為NO
,否則可能會出現鏈接器錯誤
然后在你的TodayViewController中:
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
...
-(id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
[Fabric with:@[CrashlyticsKit]];
return self;
}
並將構建階段中的Fabric Run Script復制到Today Extension目標,並將來自主應用程序的info plist中的Fabric條目復制到Today Extension的信息plist中
以下是官方如何描述如何在iOS擴展中使用Crashlytics:
viewController
的initWithCoder
方法Fabric.with([Crashlytics.self])
而且......你很高興!
如果您想添加Crashlytics以在iOS 8.0+上共享擴展程序,maremmle的答案也適用。 只記得把[Crashlytics startWithAPIKey:@"apiKey"];
來自第一個ViewController的內部init
方法。
感謝所有說明,它在我的共享擴展中正常工作。
我也注意到,對於我的共享擴展,織物答案儀表盤並沒有表現出實際的數據:
它適用於伴侶應用程序。 所以我想知道Answers SDK將如何確定這一點。 最符合邏輯的似乎是監控UIApplication通知。 由於擴展的生命周期與ViewController相關,因此不會發布這些UIApplication通知。 因此,Fabric不知道Extension何時處於活動狀態。
所以我實現了以下解決方案,它在Fabric Dashboard中提供了上述數據:
請注意,設備上的操作與數據在控制板中可見時之間存在延遲。 特別是對於活躍用戶 。 展示擴展后大約需要20-30秒。 但是,當Extension關閉時,可能需要最多5 分鍾才能減少Active Users。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.