iOS

【Swift】FabricからFirebase CrashLyticsのアップデート

投稿日:

はじめに

こんにちは、suzukiです。今回は下記2点の問題を解決するための記事です。

  • 11月15日から古いライブラリのクラッシュレポートの送信ができなくなる
  • 最近リリースした際にFabricのdsymのアップロードがうまくいかない

記事は下記でまとめております。

  • FabricからFirebase CrashLyticsのアップデート方法
  • dSYMsの手動アップロード方法

※アプリの配布には触れていいません。

FabricとFirebase

2017/01/18にFabricをgoogleによる買収が発表され、FabricのクラッシュレポートサービスがFirebaseのサービスに統合されて行きました。今までFabricライブラリをサポートしそのまま利用が可能だったのですが、2020/11/15をもってサポートが終了します。
Fabricライブラリを利用して行っていたのが下記の2点です。

  • dSYMsファイルのアップロード
  • クラッシュレポートの送信

FabricからFirebase CrashLyticsのアップデート方法

まず最初に既存のFabricの関連の内容を確認しましょう下記は全て不要になります。

Fabricの削除

・ライブラリの削除
Fabric.framework
Crashlytics.framework
のライブラリが不要になります。CocoaPodsやCarthageを利用されている方はそれぞれ導入のための記述を削除します。

・コードの削除
下記のようなインポート文と初期化コードを削除します。

・RunScriptの消去
Fabricの導入時のため追加されているRunScriptを削除します。

Firebase CrashLyticsの導入

今回はCocoaPodsを利用してFirebaseを導入します。

・ライブラリの追加
Podfileに pod 'Firebase/Crashlytics' pod 'Firebase/Analytics' を記述しpod installを行います。
※Firebaseの導入がまだの場合はこちらを参考に導入してください。

・コードの追加
AppDelegateに import FirebaseFirebaseApp.configure() を記述します。

・RunScriptの追加
RunScriptに "${PODS_ROOT}/FirebaseCrashlytics/run" を追加します。

・CrashLyticsの有効化
FirebaseのプロジェクトからCrashLyticsを選択し有効化を行います。


上記の状態になったらクラッシュをさせます。公式のコードを参考にしてください。自分はシミュレーターではうまく動作しなかったので実機で確認を行いました。

dSYMsの手動アップロード方法

Fabricライブラリの導入手順で自動でdSYMsファイルをアップロードする設定がありましたが、2020/10頃から動作しなくなっています。そのため、FirebaseAnalyticsでmissing symbols等の表示される事がございます。
上記を解決するため手動でアップロードを行います。

dSYMsとは

Xcodeでアーカイブやビルドをした際に難読化がされます。その結果、アップロードするバイナリ上ではどのようなコードがどのクラスに記述されているか判別がつかない状態になります。
その際に難読化されたコードをもとに戻すためのファイルがdSYMsファイルとなります。
このファイルを元にFirebaseCrashLyticsでは難読化解除された(人が読める形式の)クラッシュ レポートを表示できます。

dSYMsファイルの取得方法

普段意識していないと思いますが、dSYMsファイルは自動的に作られています。作られているdSYMsファイルを取得する方法は下記の方法があります。

.xcarchiveから取得
Xcodeを開きWindow>Organizerを選択し、

Download dSYMsを選択

・iTunes connectから取得
iTunes connectでログイン→My appから目的のアプリケーションを選択→アクティビティを選択しビルドバージョンを選択します。
中央右側にの方にDsymのダウンロードというボタンがあるのでそちらを選択。
※この方法ではbitCodeを無効にしていたり、ストアに上げる際の設定で取得できないことがあります。

手動でdSYMsのアップロード

下記のコマンドをターミナルで実行しアップロードを行います。
FirebaseCrashlyticsライブラリに含まれるupload-symbolsを利用し設定ファイルとdSYMsを指定してアップロードを行います。

さいごに

最後までありがとうございます。アプリのクラッシュ解析のためとりあえず導入しておいたFabric、今後も使えるようにライブラリのアップデートとdSYMのアップロードは忘れず行いましょう。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

swift

[iOS]意外と簡単ウィジェット機能を実装してみる

1 はじめに2 OSごとのできること3 ウィジェットの実装3.1 Today Extensionの追加3.2 Chartを表示3.3 表示を増やす3.4 ウィジェットをタップした際にアプリを起動する4 ...

swift

[Swift3] スクロールする画面に固定でボタンを表示する方法

1 はじめに1.1 前提条件2 Storyboardの準備3 Controllerの実装3.1 スクロールする画面の実装(TableView)3.2 固定で表示するボタンを配置している画面の実装(Co ...

[初心者向け]Xcodeの使い方(よく使うショートカットキーとエディタ)

1 はじめに1.1 前提条件2 ショートカットキー2.1 コメントアウト2.2 インデント2.3 ファイル内検索2.4 プロジェクト内検索2.5 クリーン2.6 ビルド2.7 ラン3 エディタ3.1 ...

swift

Swift3でRealmを使ってみる

1 はじめに1.1 前提条件2 事前準備2.1 Realmのインストール・設定2.1.1 Carthageファイルの生成2.1.2 CarhageにてRealmをインストール2.1.3 Realmをイ ...

iOS14のWidget機能を使ってみた。

1 はじめに2 Xcode 12 betaの入れ方3 WidgetExtensionの追加方法4 デフォルトのコード説明5 Configurationについて6 プロバイダー6.1 snapshot6 ...

フォロー

blog-page_side_responsive

2020年10月
 123
45678910
11121314151617
18192021222324
25262728293031

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。