Как протестировать реализацию Crashlytics (платформы Apple)

Выберите платформу: iOS+ Android Flutter Unity


Если вы выполнили инструкции из краткого руководства, но на панели управления Crashlytics по-прежнему не отображаются данные о сбоях, воспользуйтесь этим руководством.

Как принудительно вызвать сбой, чтобы проверить реализацию

  1. Добавьте в приложение код, который можно использовать для принудительного тестового сбоя.

    Вы можете использовать приведенный ниже код, чтобы добавить в приложение кнопку, нажатие на которую вызывает сбой. с надписью "Тестовый сбой".

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }

    UIKit

    Swift

    import UIKit
    
    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("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }

    Objective-C

    #import "ViewController.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:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
  2. Соберите и запустите приложение в Xcode, отключив отладчик Xcode.

    1. Нажмите Build and then run the current scheme (Собрать и запустить текущую схему), чтобы собрать приложение на тестовом устройстве или в симуляторе.

    2. Дождитесь запуска приложения и нажмите Stop running the scheme or action (Остановить схему или действие), чтобы закрыть первый экземпляр приложения. В нем содержится отладчик, который мешает работе Crashlytics.

  3. Принудительно вызовите тестовый сбой, чтобы отправить первый отчет о сбое в приложении.

    1. Откройте приложение на главном экране тестового устройства или симулятора.

    2. В приложении нажмите кнопку Test Crash, которую вы добавили с помощью кода выше.

    3. После сбоя снова запустите приложение из Xcode, чтобы оно могло отправить отчет о сбое в Firebase.

  4. В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и взаимодействие) > Crashlytics dashboard (Панель управления) и проверьте, появился ли тестовый отчет о сбое.

    Если вы обновили консоль и по-прежнему не видите тестовый сбой через пять минут, попробуйте включить ведение журнала отладки (следующий раздел).

Включить журнал отладки для Crashlytics

Если вы не видите тестовый сбой на панели управления Crashlytics, вы можете использовать журнал отладки для Crashlytics, чтобы отследить проблему.

  1. Включите журнал отладки:

    1. В Xcode выберите Product (Продукт) > Scheme (Схема) > Edit scheme (Изменить схему).

    2. В меню слева нажмите Run (Выполнить) и перейдите на вкладку Arguments (Аргументы).

    3. В разделе Arguments Passed on Launch (Аргументы, передаваемые при запуске) добавьте -FIRDebugEnabled.

  2. Вызовите тестовый сбой. Инструкции приведены в первом разделе этой статьи.

  3. Найдите в журнале сообщение от Crashlytics, содержащее следующую строку. Это подтвердит, что ваше приложение отправляет данные о сбоях в Firebase.

    Completed report submission

Если через пять минут вы по-прежнему не видите эту запись или тестовый сбой на панели управления DevOps & Engagement (DevOps и вовлечение) > Crashlytics в консоли Firebase, обратитесь в службу поддержки Firebase и предоставьте копию журнала. Мы поможем вам устранить неполадки.

Дальнейшие действия