FabricのCrashlyticsのアップデートに失敗した時の回避法

Fabricとは

みなさん使ってます?Fabric. 

Twitter社が、Crashlyticsを吸収しTwitterライブラリの導入支援に加え、クラッシュレポートをグラフィカルに確認できるようにしてくれるツールです。  

f:id:project-unknown:20170930152405p:plain
(Fabricツールのイメージ)

最近では、GoogleのFirebaseのクラッシュレポートが、Fabricを採用することが決まり、更に幅広く使えそうな事が見込めます。  

今日は、そんなFabricのCrashlyticsですが、アップデートしようとして見事に詰まってしまったので、その解決法の紹介です。

 

FabricのツールからCrashlyticsを入れようとするとLinkerエラー

 

先程も記載しましたが、FabricはTwitterライブラリを簡単に導入できるのに加え、Crashlytics の導入支援もしてくれます。

 

現在提供しているKeyholderは、元々FabricのツールからCrashlytics を導入していたので、今回も同様の手順でUpdateしようとしましたが、見出しの通りLinkerエラー。  

 

Fabricツール経由ではWorkspaceは適用しない?

 

いろいろ見ていて気になったのは、Fabricツールから起動しようとすると、XCodeのプロジェクトファイルが自動で立ち上がるところ。  

 

Keyholderは、Cocoapodsを使っている兼ね合い上、Workspaceで管理しています。  

且つ、エラーの発生箇所はKeyholderのプロジェクトファイルというよりは、同一Workspaceで管理している別パッケージで発生してました。  

 

Crashlyticsを、Cocoapods経由でインストール(解決策)

 

一気に解決策ですが、Favricツール経由ではなく、Cocoapods経由でCrashlytics を導入する事で、正常にインストールができました。

source 'https://github.com/CocoaPods/Specs.git'

target 'KeyHolder' do
  use_frameworks!

pod 'Fabric'
pod 'Crashlytics'

end

懸念点

 

元々Fabricツール経由で入れていたものをCocoapods経由にした所。  

 

ライブラリ的には問題ないとは思ってますが、ツール経由からCocoapodsに切り替えた事で古いファイルなどが残らないか気になってるところですね。  

 

現状は問題なく動作しているので、もうちょっとテストしたら本番投入してみます。  

 

もし、何か不具合があれば、この記事更新と解決法を探っていきます。

 

さいごに

 

Fabricは本当に強力なツールです。  

前Twitterでボヤきましたが、KeyholderのSwift化対応中にFabricを更新しないといけなかったのですが、本件で詰まってしまった為に、一度取り外してリリースしています。  

 

そのせいで、今現在Keyholderがクラッシュを引き起こしていても詳細を把握する事が出来ないので非常に不安な状態が続いています。

 

取り急ぎ、Fabricを導入したKeyholderをリリースに向けて着手中です。