#import"ViewController.h"@implementationViewController
‐ (void)viewDidLoad{[superviewDidLoad];// Do any additional setup after loading the view, typically from a nib.UIButton*button=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];button.frame=CGRectMake(20,50,100,30);[buttonsetTitle:@"Test Crash"forState:UIControlStateNormal];[buttonaddTarget:selfaction:@selector(crashButtonTapped:)forControlEvents:UIControlEventTouchUpInside];[self.viewaddSubview:button];}‐(IBAction)crashButtonTapped:(id)sender{@[][1];}@end
Compila y ejecuta tu app en Xcode con el depurador de Xcode desconectado.
Haz clic en play_arrowBuild and then
run the current scheme para compilar la app en un dispositivo de prueba o
simulador.
Espera hasta que la app esté en ejecución y, luego, haz clic en
stopDetener la ejecución del esquema o
la acción para cerrar la instancia inicial de la app. Esta instancia
inicial incluía el depurador que interfiere en Crashlytics.
Fuerza la falla de prueba para enviar el primer informe de fallas de la app, de la siguiente manera:
Abre la app desde la pantalla principal del dispositivo o simulador.
En tu app, presiona el botón “Test Crash” que agregaste con el código
anterior.
Cuando tu app falle, vuelve a ejecutarla desde Xcode para que pueda
enviar el informe de fallas a Firebase.
Si actualizaste la consola y sigues sin poder ver la falla de prueba
después de cinco minutos, intenta habilitar el registro de depuración (sección siguiente).
Habilita el registro de depuración para Crashlytics
Si no ves tu falla de prueba en el panel de Crashlytics, puedes
usar el registro de depuración de Crashlytics para encontrar el problema con más facilidad.
Habilita el registro de depuración:
En Xcode, selecciona Product > Scheme > Edit scheme.
Selecciona Run en el menú de la izquierda y, luego, selecciona la pestaña Arguments.
En la sección Arguments Passed On Launch, agrega -FIRDebugEnabled.
Fuerza una falla de prueba. En la primera sección de esta página, se describe cómo hacerlo.
Dentro de los registros, busca un mensaje de registro de Crashlytics que
contenga la siguiente cadena, que verifica que la app envía
fallas a Firebase.
Completed report submission
Si no ves este registro o tu falla de prueba en el panel de Crashlytics
de Firebase console después de cinco minutos, comunícate con la
Asistencia de Firebase y envía una copia de
la salida del registro para que podamos ayudarte a solucionar mejor el problema.
[null,null,["Última actualización: 2025-08-18 (UTC)"],[],[],null,["\u003cbr /\u003e\n\niOS+ Android Flutter Unity \n\n\u003cbr /\u003e\n\nForce a crash to test your implementation **Note:** Before forcing a crash, make sure that your app is configured to [automatically upload dSYM files](/docs/crashlytics/get-started?platform=ios#set-up-dsym-uploading).\n\n1. Add code to your app that you can use to force a test crash.\n\n You can use the following code to add a button to your app that, when\n pressed, causes a crash. The button is labeled \"Test Crash\".\n\n \u003cbr /\u003e\n\n SwiftUI \n\n ```swift\n Button(\"Crash\") {\n fatalError(\"Crash was triggered\")\n }\n ```\n\n UIKit \n\n Swift \n\n ```python\n import UIKit\n\n class ViewController: UIViewController {\n override func viewDidLoad() {\n super.viewDidLoad()\n\n // Do any additional setup after loading the view, typically from a nib.\n\n let button = UIButton(type: .roundedRect)\n button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)\n button.setTitle(\"Test Crash\", for: [])\n button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)\n view.addSubview(button)\n }\n\n @IBAction func crashButtonTapped(_ sender: AnyObject) {\n let numbers = [0]\n let _ = numbers[1]\n }\n }\n ```\n\n Objective-C \n\n ```objective-c\n #import \"ViewController.h\"\n\n @implementation ViewController\n ‐ (void)viewDidLoad {\n [super viewDidLoad];\n\n // Do any additional setup after loading the view, typically from a nib.\n\n UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];\n button.frame = CGRectMake(20, 50, 100, 30);\n [button setTitle:@\"Test Crash\" forState:UIControlStateNormal];\n [button addTarget:self action:@selector(crashButtonTapped:)\n forControlEvents:UIControlEventTouchUpInside];\n [self.view addSubview:button];\n }\n\n ‐ (IBAction)crashButtonTapped:(id)sender {\n @[][1];\n }\n\n @end\n ```\n2. Build and run your app in Xcode with the Xcode debugger disconnected.\n\n | **The Xcode debugger prevents crash reports\n | from being sent to Crashlytics.** Complete the following steps to disconnect your test device or simulator from the Xcode debugger ***before*** forcing a crash.\n 1. Click play_arrow**Build and then\n run the current scheme** to build your app on a test device or\n simulator.\n\n 2. Wait until your app is running, then click\n stop**Stop running the scheme or\n action** to close the initial instance of your app. This initial\n instance included the debugger that interferes with Crashlytics.\n\n3. Force the test crash in order to send your app's first crash report:\n\n 1. Open your app from the home screen of your test device or simulator.\n\n 2. In your app, press the \"Test Crash\" button that you added using the code\n above.\n\n 3. After your app crashes, run it again from Xcode so that your app can\n send the crash report to Firebase.\n\n4. Go to the [Crashlytics dashboard](https://console.firebase.google.com/project/_/crashlytics) of the\n Firebase console to see your test crash.\n\nIf you've refreshed the console and you're still not seeing the test crash\nafter five minutes, try enabling debug logging (next section).\n\nEnable debug logging for Crashlytics\n\nIf you don't see your test crash in the Crashlytics dashboard, you can\nuse debug logging for Crashlytics to help track down the problem.\n\n1. Enable debug logging:\n\n 1. In Xcode, select **Product \\\u003e Scheme \\\u003e Edit scheme**.\n\n 2. Select **Run** from the left menu, then select the **Arguments** tab.\n\n 3. In the *Arguments Passed on Launch* section, add `-FIRDebugEnabled`.\n\n2. Force a test crash. The first section on this page describes how to do this.\n\n3. Within your logs, search for a log message from Crashlytics that\n contains the following string, which verifies that your app is sending\n crashes to Firebase.\n\n ```\n Completed report submission\n ```\n | After confirming that your app is sending crashes, you can optionally disable debug logging by removing the `-FIRDebugEnabled` from the arguments passed on launch.\n\nIf you don't see this log or your test crash in the Crashlytics dashboard\nof the Firebase console after five minutes, reach out to\n[Firebase Support](/support/troubleshooter/crashlytics/missing) with a copy of\nyour log output so that we can help you troubleshoot further.\n\nNext steps\n\n- [Customize your crash report setup](/docs/crashlytics/customize-crash-reports) by adding opt-in reporting, logs, keys, and tracking of non-fatal errors."]]