On November 15, the Fabric SDK and old versions of the Crashlytics SDK will stop sending crashes. To keep getting crash reports, make sure you upgrade to the latest version of the Firebase Crashlytics SDK (v17.0.0+ for Android, v4.0.0+ for iOS, or v6.15.0+ for Unity).

Firebase Crashlytics 実装のテスト

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

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

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()
    }
}

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

実装をテストするには、アプリのボタンを押して強制的にクラッシュさせてアプリを再度開き、Crashlytics が Firebase にクラッシュ レポートを送信できるようにします。レポートが Firebase コンソールに表示されるまでに最長 5 分かかることがあります。

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

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

  1. Xcode ナビゲータでプロジェクトがまだ選択されている状態で、[Build Settings] タブを開きます。
  2. すべてのビルド設定を表示するには、このタブの上部にある [All] をクリックします。
  3. 「debug information format」を検索します。
  4. [Debug Information Format] 設定を [DWARF with dSYM File] に設定します。

テストする

上のコード スニペットを追加することにより、アプリをクラッシュさせるボタンが表示されるようになります。このボタンを動作させるには、デバッガを使用せずにアプリケーションを実行します。

  1. Xcode で [ Build and then run the current scheme] をクリックして、デバイスまたはシミュレータでアプリをビルドします。
  2. Xcode で [ Stop running the scheme or action] をクリックして、アプリの初期インスタンスを閉じます。この初期インスタンスには、Crashlytics の動作を妨げるデバッガが含まれています。
  3. シミュレータまたはデバイスからアプリをもう一度開きます。
  4. アプリをクラッシュさせるには、[Crash] をタップします。
  5. もう一度アプリを開くと、Crashlytics API によってクラッシュが報告されます。5 分以内に Firebase コンソールにクラッシュが表示されるはずです。

Crashlytics のデバッグ ロギングを有効にする

強制クラッシュが機能しない、意図的にクラッシュさせる前にクラッシュが発生した、あるいは Crashlytics でその他の問題が発生した場合は、問題を突き止めるために Crashlytics のデバッグ ロギングを有効にします。

Crashlytics 3.11.1 以降

開発デバイスでデバッグ ロギングを有効にするには、Xcode で次のコマンドライン引数を指定します。

-FIRDebugEnabled

以前のバージョン

Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions
        launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Initialize Firebase service.
        FirebaseApp.configure()
        Fabric.sharedSDK().debug = true
        return true
      }
    
Objective-C
- (BOOL)application:(UIApplication *)application
          didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Initialize Firebase service.
        [FIRApp configure];
        [Fabric.sharedSDK setDebug:YES];
        return YES;
      }
    

次のステップ

  • クラッシュ レポートをカスタマイズする - SDK を追加すると、Crashlytics は直ちに自動的にクラッシュ レポートの収集を開始しますが、設定をカスタマイズして、オプトインのレポート、ログ、キーの追加や、重大でないエラーの追跡もできます。