今日の拡張機能は分離されたプロセスとして実行されるため、すぐにクラッシュをログに記録することはないと確信しています。ウィジェットでCrashlyticsを個別に初期化する必要があると思います。例えば。 viewDidLoad
のTodayViewController
メソッドで。
Crashlyticsのサポートから連絡があり、これらの手順が提供されました。私はそれらをテストしました、そしてそれは今私のためにiOS8アプリで動作します。
Crashlytics Run Script Build Phaseも拡張機能のターゲットに追加します(メインアプリに追加したものと同じものをコピーして貼り付けます)
拡張機能のリンクライブラリに_Crashlytics.framework
_を追加します(たとえば、ファイルインスペクターで拡張機能のターゲットを確認するだけです)
Crashlytics.startWithAPIKey("yourApiKey")
を拡張機能のViewControllerのinitWithCoder
methodに追加します。 (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ターゲットに追加できます。
ポッドファイル内:
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;
}
ビルドフェーズでFabricRun ScriptをToday Extensionターゲットにコピーし、infoplistからメインアプリケーションのFabricエントリをTodayExtensionにコピーします。 info plist
これが officialhow-to iOS拡張機能でCrashlyticsを使用する方法を説明しています:
viewController
のinitWithCoder
メソッドFabric.with([Crashlytics.self])
に追加しますそして...あなたは行ってもいいです!
Maremmleからの回答は、iOS8.0以降で拡張機能を共有するためにCrashlyticsを追加する場合にも機能します。最初のViewControllerからinit
メソッド内に[Crashlytics startWithAPIKey:@"apiKey"];
を置くことを忘れないでください。
すべての指示をありがとう、それは私の共有拡張機能でうまく動作します。
Share Extensionの場合、Fabric Answersダッシュボードに次の実際のデータが表示されないnotことに気づきました。
コンパニオンアプリ用です。そのため、AnswersSDKがこれをどのように決定するのか疑問に思いました。最も論理的なのは、UIApplication通知を監視しているようです。拡張機能のライフサイクルはViewControllerに関連しているため、これらのUIApplication通知は投稿されません。したがって、Fabricは拡張機能がいつアクティブになるかを知りません。
そこで、ファブリックダッシュボードに上記のデータを提供する次のソリューションを実装しました。
デバイスでのアクションとダッシュボードにデータが表示されるまでに遅延があることに注意してください。特にアクティブユーザーの場合。拡張機能が表示されてから約20〜30秒かかります。ただし、拡張機能が閉じられている場合、アクティブユーザーがデクリメントされるまでに最大5分かかる場合があります。