コンソールへ移動

iOS で Firebase Crashlytics の使用を開始する

このガイドの手順に沿って、iOS アプリに Firebase Crashlytics を設定してください。

準備

Firebase Crashlytics のご利用にあたっては、次の 2 つが必要です。

Xcode プロジェクトに Firebase Crashlytics CocoaPods レポジトリを追加する

Firebase Crashlytics Early Access Program(EAP)用に、プライベート CocoaPods レポジトリを使用して、Crashlytics SDK を入手します。

  1. 新しいターミナル ウィンドウを開き、Xcode プロジェクトのディレクトリに移動します。
  2. Crashlytics レポジトリを追加します。
    pod repo add crashlytics git@github.com:crashlytics/SpecsEAP.git
  3. Podfile を開き、強調表示されている行を追加します。
    source 'git@github.com:CocoaPods/Specs.git'
    source 'git@github.com:crashlytics/SpecsEAP.git'
    
    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'
    
    target 'MyProject' do
    # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
    use_frameworks!
    
    # Pods for PodTest
    pod 'Fabric', '~> 1.7.0-beta'
    pod 'Crashlytics', '~> 3.9.0-beta'
    
    end
  4. ターミナルで、ポッドの依存関係をインストールします。
    pod install

Firebase Crashlytics の実行スクリプトを追加する

追加したレポジトリには、Firebase Crashlytics を初期化する実行スクリプトが含まれています。それをプロジェクトのビルドフェーズに追加します。

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

  2. [Build Phases] タブを開きます。

  3. [+ Add a new build phase] をクリックし、[New Run Script Phase] を選択します。

  4. [Type a script...] テキスト ボックスに次の行を追加します。

    "${PODS_ROOT}/Fabric/run"
    

プロジェクトのデバッグ設定を調整する

ビルドの起動時にデバッガに接続する場合、Crashlytics はクラッシュをキャプチャできません。ビルドの設定を調整して、プロジェクトのデバッグ情報の形式を変更します。

  1. Xcode ナビゲータでプロジェクトがまだ選択されている状態で、[Build Settings] タブを開きます。

  2. すべてのビルド設定を表示するには、このタブの上部にある [All] をクリックします。

  3. 「デバッグ情報の形式」を検索します。

  4. [Debug Information Format] 設定を [DWARF with dSYM File] に設定します。

Firebase Crashlytics の早期アクセスフラグを追加する

早期アクセス プログラムの一環として、Firebase Crashlytics を有効にするために、アプリにフラグを追加する必要があります。Info.plist ファイルに新しいエントリを追加します。

  • キー: CLSFirebaseMode
  • 型: Boolean
  • 値: YES

このフラグが設定されていると、アプリの将来のビルドで、クラッシュ レポート プラットフォームとして Firebase Crashlytics が使用されます。

Firebase コンソールでクラッシュ レポートを表示する

Firebase Crashlytics では、Firebase コンソールからクラッシュ レポートをモニタリングできます。

  1. Firebase コンソールを開きます。

  2. アプリのプロジェクトを選択します。

  3. 左側のナビゲーション バーから [gmp_crashlytics Crashlytics] を選択します。

強制的にクラッシュして実装状況をテストする

クラッシュする前でも Crashlytics の動作を確認することができます。SDK を使用して、アプリに少しのコードを追加することで、強制的にクラッシュさせることができます。

Objective-C

#import "ViewController.h"
#import <Crashlytics/Crashlytics.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:@"Crash" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(crashButtonTapped:)
        forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

- (IBAction)crashButtonTapped:(id)sender {
    [[Crashlytics sharedInstance] crash];
}

@end

Swift

import UIKit
import Crashlytics

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("Crash", for: [])
        button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
        view.addSubview(button)
    }

    @IBAction func crashButtonTapped(_ sender: AnyObject) {
        Crashlytics.sharedInstance().crash()
    }
}

上のコード スニペットでは、押したときにアプリをクラッシュさせるボタンを追加します。ただし、これを動作させるには、デバッガなしでアプリを実行する必要があります。

  1. Xcode で [play_arrow Build and then run the current scheme] をクリックして、デバイスまたはシミュレータでアプリをビルドします。

  2. Xcode で [stop Stop running the scheme or action] をクリックして、アプリの初期インスタンスを閉じます。この初期インスタンスには、Crashlytics を妨害するデバッガが含まれています。

  3. シミュレータまたはデバイスからアプリをもう一度開きます。

  4. アプリをクラッシュするには、[クラッシュ] をタップします。

  5. もう一度アプリを開くと、Crashlytics API によってクラッシュが報告されます。5 分以内に Firebase コンソールにクラッシュが表示されるはずです。