Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

FirebaseCrashlyticsを使い始める

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このクイックスタートでは、Firebase コンソールで包括的なクラッシュ レポートを取得できるように、Firebase Crashlytics SDK を使用してアプリで Firebase Crashlytics を設定する方法について説明します。

Crashlytics をセットアップするには、Firebase コンソールと IDE の両方でタスクが必要です (Firebase 構成ファイルと Crashlytics SDK の追加など)。セットアップを完了するには、テスト クラッシュを強制して、最初のクラッシュ レポートを Firebase に送信する必要があります。

あなたが始める前に

  1. まだ行っていない場合は、 Firebase を Apple プロジェクトに追加します。 Apple アプリをお持ちでない場合は、サンプル アプリをダウンロードできます。

  2. 推奨: クラッシュ フリー ユーザー、ブレッドクラム ログ、ベロシティ アラートなどの機能を取得するには、Firebase プロジェクトで Google アナリティクスを有効にする必要があります。

    Crashlytics でサポートされているすべての Apple プラットフォーム (watchOS を除く) は、Google アナリティクスからこれらの機能を利用できます。 macOS および tvOS アプリには SDK v8.9.0+ が必要であることに注意してください。

    • 既存の Firebase プロジェクトで Google アナリティクスが有効になっていない場合は、Firebase コンソールの [ ] > [プロジェクト設定] の[統合] タブから Google アナリティクスを有効にすることができます。

    • 新しい Firebase プロジェクトを作成する場合は、プロジェクト作成ワークフローで Google アナリティクスを有効にします。

ステップ 1 : Crashlytics SDK をアプリに追加する

Swift Package Manager を使用して、Firebase の依存関係をインストールおよび管理します。

  1. Xcode で、アプリ プロジェクトを開いた状態で、 File > Add Packagesに移動します。
  2. プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Crashlytics ライブラリを選択します。
  5. Crashlytics で最適なエクスペリエンスを得るには、Firebase プロジェクトでGoogle アナリティクスを有効にし、Google アナリティクス用の Firebase SDK をアプリに追加することをお勧めします。 IDFA コレクションのないライブラリまたは IDFA コレクションのあるライブラリのいずれかを選択できます。
  6. 完了すると、Xcode はバックグラウンドで依存関係の解決とダウンロードを自動的に開始します。

次に、Firebase モジュールを構成します。

  1. App構造体またはUIApplicationDelegateに Firebase モジュールをインポートします。

    迅速

    import Firebase

    Objective-C

    @import Firebase;
  2. 通常、アプリ デリゲートのapplication(_:didFinishLaunchingWithOptions:)メソッドで、 FirebaseApp共有インスタンスを構成します。

    迅速

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Objective-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

ステップ 2 : dSYM ファイルを自動的にアップロードするように Xcode を設定する

人間が判読できるクラッシュ レポートを生成するには、Crashlytics にプロジェクトのデバッグ シンボル (dSYM) ファイルが必要です。次の手順では、アプリをビルドするたびに自動的に dSYM を生成して処理し、ファイルをアップロードするように Xcode を構成する方法について説明します。

  1. プロジェクトの Xcode ワークスペースを開き、左側のナビゲーターでそのプロジェクト ファイルを選択します。

  2. TARGETSリストから、メインのビルド ターゲットを選択します。

  3. [ビルド設定] タブをクリックし、次の手順を実行して、Xcode がビルドの dSYM を生成するようにします。

    1. [すべて] をクリックし、 debug information formatを検索します。

    2. すべてのビルド タイプのDWARF with dSYM Fileを使用して、デバッグ情報の形式を DWARF に設定します。

  4. Build Phasesタブをクリックし、Xcode が dSYM を処理してファイルをアップロードできるように、次の手順を完了します。

    1. [ > [新しい実行スクリプト フェーズ]をクリックします。

      この新しいRun Scriptフェーズがプロジェクトの最後のビルド フェーズであることを確認してください。そうしないと、Crashlytics は dSYM を適切に処理できません。

    2. 新しいRun Scriptセクションを展開します。

    3. スクリプト フィールド (シェルラベルの下にあります) に、次の実行スクリプトを追加します。

      このスクリプトは、プロジェクトの dSYM ファイルを処理し、ファイルを Crashlytics にアップロードします。

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. [入力ファイル] セクションで、次のファイルの場所へのパスを追加します。

      • プロジェクトのdSYM ファイルの場所:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        プロジェクトの dSYM ファイルの場所を指定すると、Crashlytics は大規模なアプリの dSYM をより迅速に処理できます。

      • プロジェクトのビルドされたInfo.plistファイルの場所:

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

        プロジェクトのビルドされたInfo.plistファイルの場所を指定すると、Crashlytics はアプリのバージョンを dSYM に関連付けることができます。

dSYM ファイルと Crashlytics (dSYM ファイルを手動でアップロードする方法を含む) の詳細については、難読化解除されたクラッシュ レポートを取得する を参照してください。

ステップ 3 : テスト クラッシュを強制してセットアップを終了する

Crashlytics の設定を完了し、Firebase コンソールの Crashlytics ダッシュボードで初期データを確認するには、テスト クラッシュを強制する必要があります。

  1. テスト クラッシュを強制するために使用できるコードをアプリに追加します。

    次のコードを使用して、ボタンを押すとクラッシュするボタンをアプリに追加できます。ボタンには「Test Crash」というラベルが付いています。

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    迅速

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }
    

    Objective-C

    #import "ViewController.h"
    
    @implementation ViewController
    ‐ (void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
    
  2. Xcode でアプリをビルドして実行します。

    1. Build をクリックし、現在のスキームを実行して、テスト デバイスまたはシミュレーターでアプリをビルドします。

    2. アプリが実行されるまで待ってから、[スキームまたはアクションの実行を ] をクリックして、アプリの初期インスタンスを閉じます。この最初のインスタンスには、Crashlytics を妨害するデバッガーが含まれていました。

  3. アプリの最初のクラッシュ レポートを送信するために、テスト クラッシュを強制します。

    1. テスト デバイスまたはシミュレーターのホーム画面からアプリを開きます。

    2. アプリで、上記のコードを使用して追加した [Test Crash] ボタンを押します。

    3. アプリがクラッシュしたら、Xcode からもう一度実行して、アプリがクラッシュ レポートを Firebase に送信できるようにします。

  4. Firebase コンソールのCrashlytics ダッシュボードに移動して、テストのクラッシュを確認します。

    コンソールを更新しても 5 分経ってもテスト クラッシュが表示されない場合は、デバッグ ログを有効にして、アプリがクラッシュ レポートを送信しているかどうかを確認してください。


以上です! Crashlytics は現在、アプリのクラッシュを監視しています。 Crashlytics ダッシュボードにアクセスして、すべてのレポートと統計を表示して調査します。

次のステップ