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 はクラッシュをキャプチャできません。ビルドの設定を調整して、プロジェクトのデバッグ情報の形式を変更します。
- Xcode ナビゲータでプロジェクトがまだ選択されている状態で、[Build Settings] タブを開きます。
- すべてのビルド設定を表示するには、このタブの上部にある [All] をクリックします。
- 「debug information format」を検索します。
- [Debug Information Format] 設定を [DWARF with dSYM File] に設定します。
テストする
上のコード スニペットを追加することにより、アプリをクラッシュさせるボタンが表示されるようになります。このボタンを動作させるには、デバッガを使用せずにアプリを実行します。
- Xcode で [ Build and then run the current scheme] をクリックして、デバイスまたはシミュレータでアプリをビルドします。
- Xcode で [ Stop running the scheme or action] をクリックして、アプリの初期インスタンスを閉じます。この初期インスタンスには、Crashlytics の動作を妨げるデバッガが含まれています。
- シミュレータまたは端末からアプリをもう一度開きます。
- アプリをクラッシュさせるには、[Crash] をタップします。
- もう一度アプリを開くと、Crashlytics API によってクラッシュが報告されます。5 分以内に Firebase コンソールにクラッシュが表示されるはずです。
android
Crashlytics の動作を確認するのにクラッシュが発生するのを待つ必要はありません。強制的にクラッシュを発生させるボタンをアプリの MainActivity
に追加することができます。
Java
Android
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));
Kotlin
Android
val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { Crashlytics.getInstance().crash() // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
テスト時には、このボタンを押してアプリをクラッシュさせた後でアプリを再度開き、Crashlytics がクラッシュを報告できるようにします。このレポートは、5 分以内に Firebase コンソールに表示されます。
Crashlytics のデバッグ ロギングを有効にする
強制クラッシュが機能しない、意図的にクラッシュさせる前にクラッシュが発生した、あるいは Crashlytics でその他の問題が発生した場合は、問題を突き止めるために Crashlytics のデバッグ ロギングを有効にします。
iOS
Crashlytics 3.11.1+
開発デバイスでデバッグ ロギングを有効にするには、Xcode で次のコマンドライン引数を指定します。
-FIRDebugEnabled
以前のバージョン
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
Crashlytics 2.9.6 +
開発デバイスでデバッグ ロギングを有効にするには、アプリを実行する前に次の 2 つの adb shell フラグを設定します。
adb shell setprop log.tag.Fabric DEBUG adb shell setprop log.tag.CrashlyticsCore DEBUG
次のコマンドを実行して、デバイスでログを表示します。
adb logcat -s Fabric CrashlyticsCore
デバッグモードを無効にするには、フラグを INFO に戻します。
adb shell setprop log.tag.Fabric INFO adb shell setprop log.tag.CrashlyticsCore INFO
以前のバージョン
Android でデバッグモードを有効にするには、AndroidManifest.xml
に次の行を追加して自動初期化を無効にする必要があります。
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
次に、デバッガを有効にして Crashlytics を手動で初期化します。
Java
Android
final Fabric fabric = new Fabric.Builder(this) .kits(new Crashlytics()) .debuggable(true) // Enables Crashlytics debugger .build(); Fabric.with(fabric);
Kotlin
Android
val fabric = Fabric.Builder(this) .kits(Crashlytics()) .debuggable(true) // Enables Crashlytics debugger .build() Fabric.with(fabric)
次のステップ
- クラッシュ レポートをカスタマイズする - SDK を追加すると Crashlytics はすぐ自動的にクラッシュ レポートの収集を開始します。設定をカスタマイズして、オプトインのレポート、ログ、キーを追加したり、重大でないエラーを追跡したりすることもできます。