Firebase Crashlytics 実装をテストする

iOS
android

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

iOS

クラッシュする前でも 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()
    }
}

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

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

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

テストする

上のコード スニペットでは、押したときにアプリをクラッシュさせるボタンを追加します。このボタンを動作させるには、デバッガを使用せずにアプリケーションを実行します。

  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 コンソールにクラッシュが表示されるはずです。
android

クラッシュする前でも Crashlytics の動作を確認できます。それには、強制的にクラッシュさせるボタンをアプリの MainActivity に追加します。

Button crashButton = new Button(this);
crashButton.setText("Crash!");
crashButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Crashlytics.getInstance().crash(); // Force a crash
    }
});
addContentView(crashButton,
               new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
               ViewGroup.LayoutParams.WRAP_CONTENT));

テスト時には、このボタンを押してアプリをクラッシュさせたでアプリを再度開き、Crashlytics がクラッシュを報告できるようにします。このレポートは、5 分以内に Firebase コンソールに表示されます。

Crashlytics のデバッグモードを有効にする

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

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

Android でデバッグモードを有効にするには、まず、AndroidManifest.xml に次の行を追加して自動初期化を無効にする必要があります。

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

次に、デバッガを有効にして Crashlytics を手動で初期化します。

final Fabric fabric = new Fabric.Builder(this)
        .kits(new Crashlytics())
        .debuggable(true)           // Enables Crashlytics debugger
        .build();
Fabric.with(fabric);

次のステップ

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。