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)

page_footer_responsive




-iOS
-

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

UnityのiOSネイティブをSwiftで書く

1 はじめに2 UnityのiOSネイティブとは?3 今回作るもの4 必要な構成5 unity-swiftの導入6 必要な機能の実装6.1 Swiftクラスの作成6.2 Objective-C++でU ...

[Swift] プロトコルを弱参照するために

1 はじめに2 プロトコルとは2.1 プロトコルの作成方法2.2 プロトコルを採用したクラス作成2.3 使用例3 ClassOnlyProtocolとは3.1 メリット3.2 使用例4 最後に5 おす ...

UIWebViewからWKWebViewへの移行

1 はじめに2 ターゲットとなるUIWebViewで行なっていること3 URLへのアクセス4 ローカルHTMLの読み込み5 ページを戻す、進める6 ページの読み込み開始時や終了時に処理を行う(dele ...

swift

[Swift]通信状況を取得できるReachability.swiftを使ってみた

1 はじめに2 準備3 実装3.1 通信状況を確認する3.2 通信可能になった時に通知する4 さいごに はじめに こんにちは、nukkyです。 今回は端末の通信状況を取得できるReachability ...

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

フォロー

blog-page_side_responsive

2020年10月
 123
45678910
11121314151617
18192021222324
25262728293031

アプリ情報

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