内部ライブラリにCrashlytics(3.9.3)を統合したいのですが、私は次のような状況に直面しています: 私たちが使っている内部ライブラリの1つは、すでにFabric(1.6.7)でTwitterKit(2.2.0) 。Fabricがモジュールを初期化するときに何が起こるのですか(Crashlytics/Twitter)?
[Fabric with:@[[Twitter class]]]
さて、これはTwitterの初期化が考慮されないため、我々は法「とファブリック」以来、Crashlyticsを同じように初期化することができないことを意味します。すでにそれは、このメソッドを使用して初期化だやっていることを意味しそれ以降の呼び出しで無視されます。
私は最善の方法は、このようなメインアプリで生地を呼び出すことであろうことを知っている:
[Fabric with:@[[Twitter class], [Crashlytics class]]];
が、我々の場合には、それがすでに古いのlibを使用しているアプリケーションに影響を与えないことが望ましいだ、と互換性を保つ。
現在、Fabric Twitterの初期設定を置き換え、Crashlyticsの初期化をこのような従来の方法で追加するのは安全でしょうか?
// replace original with this with info taken from Info.plist
[[Twitter sharedInstance] startWithConsumerKey:consumerKey
consumerSecret:consumerSecret];
// in another place
[Crashlytics startWithAPIKey:@"a1b2c3..."];
ファブリックは、上記またはそれだけでキーのInfo.plistファイルを解析し、フレームワークを初期化している以外ボンネットの下に他のものをしているのですか?問題は何か心配すべきですか?それをテストして、うまくいくと思われる。
また、Twitterはもはや最新のファブリックの一部ではありませんが、ここでは古いバージョンを使用しています。
"Fabric with Twitter"の部分を変更せずに "startWithAPIKey"メソッドでCrashlyticsを初期化すると、Twitterは初期化されません。
あなたのお返事ありがとうございます。この場合、Twitterを最新のバージョンにアップグレードすると、奇妙な動作が起こらず、将来的にFabricサブモジュールをライブラリに組み込むことを避けるのが最善の方法かもしれません。 –
私はそれが最善のアプローチであることに同意します。今はもっとうまくいくかもしれませんが、将来あなたとチームを苦痛から救うでしょう。 –