Crashlytics не отправляет отчет о сбое с iPhone

Я установил Crashlytics в своем единственном приложении для iOS и установил его на реальном устройстве. Моя панель мониторинга Crashlytics показывает это, я успешно добавил приложение. Однако он не отправляет отчет о сбое. У меня не очень хорошая скорость интернета. Но я могу проверять электронную почту с этого устройства. Кто-нибудь может догадаться, в чем проблема?


person farhad rubel    schedule 23.07.2013    source источник
comment
У меня такая же проблема со службой Crashlytics. Отчеты о сбоях с устройства никогда не отправляются (по моему опыту) - только из симулятора. В итоге я использовал отчеты о сбоях Crittercism и обработку ошибок.   -  person Sam Spencer    schedule 23.07.2013
comment
То же самое происходит со мной. Попробуйте ваше приложение с другим устройством, чем фактическое устройство разработки, таким образом вы можете получать отчеты о сбоях.   -  person Samet DEDE    schedule 23.07.2013
comment
Да, я использую свое устройство для разработки. Это создает проблему?   -  person farhad rubel    schedule 24.07.2013
comment
Без полного описания установки или тестового проекта на это невозможно ответить. Вам следует обратиться в службу поддержки Crashlytics. Дикие догадки не помогают.   -  person Kerni    schedule 24.07.2013
comment
Я так удивлен, что кто-то из Crashlytics увидел мой пост на StackOverflow и связался со мной по электронной почте; Он помогает мне решить эту проблему. Давай посмотрим что происходит.   -  person farhad rubel    schedule 25.07.2013
comment
Мой клиент проверил приложение на своем iPad. Приложение вылетает ... но отчет о сбое никогда не приходит на мою панель инструментов Crashlytics.   -  person farhad rubel    schedule 31.07.2013
comment
Я также установил Crashlytics в нашем проекте и распространил его среди 15 человек. Были сбои, но в Crashlytics не поступало никаких отчетов.   -  person jowie    schedule 01.05.2014
comment
Привет @farhadrubel, интересно, была ли эта проблема решена для вас? или если вам нужна помощь от команды Crashlytics?   -  person Johngorithm    schedule 13.10.2020


Ответы (17)


Отладчик Xcode НЕ позволяет Crashlytics обрабатывать отчеты о сбоях. Да, это кажется странным даже мне, когда я впервые читаю это, но это факт (Источник). По этой причине мы никогда не видим отчет о сбоях. Когда:
- запуск приложения в симуляторе
- запуск приложения на iDevice путем прямой сборки и запуска из Xcode с включенным отладчиком.

Чтобы убедиться, что во время тестирования сообщается о сбое (скопировано с сайта поддержки Crashlytics):
1. Запустить симулятор
2. Нажмите «Стоп»
3. Запустите приложение и принудительно завершите работу
4. Перезапустите приложение из симулятора
5. Просмотрите отчет о сбое на веб-панели управления.

РЕДАКТИРОВАТЬ:

Добавлена ​​ссылка; Crashlytics также предоставляет короткую статью о быстрый способ вызвать сбой.

person Saurabh Hooda    schedule 29.11.2013
comment
Это мне помогло. Я также обнаружил, что в некоторых случаях. Crashlytics не отправит отчет о сбое, если приложение не будет открыто снова. Повторюсь: у пользователя возникает сбой. Пользователь повторно открывает приложение. Crashlytics отправляет предыдущий отчет о сбоях. - person tambykojak; 20.04.2014
comment
@tambykojak, вероятно, это связано с тем, что сбои iOS в большинстве случаев довольно нестабильны, и более безопасный способ - отправить отчет о сбое при следующей загрузке приложения, а не сразу. Многие инструменты отчетов о сбоях используют эту парадигму в iOS и других обработчиках сбоев, не связанных с виртуальными машинами. - person pixelknitter; 06.05.2014
comment
Спасибо. Это должно быть отмечено как правильный ответ :) - person iMemon; 15.12.2015
comment
Нужно ли мне в этом случае загружать какие-либо dsyms? Если да, то где я могу их найти? - person SoliQuiD; 18.12.2017
comment
ссылки мертвы. - person luky; 03.06.2020
comment
Это все еще действительный ответ, спасибо и +1 за или нет. - person Alex Terente; 04.05.2021
comment
+1, поскольку это решило мою проблему. Однако я не запускал свое приложение на симуляторе, я запускал его на своем физическом устройстве в режиме профиля (Run ›Profile в Android Studio), остановил приложение, отключил устройство, перезапустил приложение, вызвал сбой с помощью кнопки и затем перезапустил приложение. Обратите внимание, что режим профиля необходим, поскольку он позволяет многократно перезапускать приложение на вашем устройстве (чего нельзя сделать в стандартном режиме отладки). - person Wes1324; 19.05.2021

Да будет поздно, но работай на 100%

Внесите некоторые изменения в настройки сборки проекта, как на изображении ниже.

введите описание изображения здесь

и следуйте этим инструкциям.

person Anand Suthar    schedule 15.10.2015
comment
Даже после отключения Bitcode у меня время от времени все еще отсутствовали ошибки dSYMS и 100% времени при отладке с помощью симулятора. Это исправило это. Спасибо. - person user3344977; 13.04.2016
comment
Изменив этот параметр, я смог увидеть сбои на платформе Firebase. - person Kwnstantinos Nikoloutsos; 27.05.2020
comment
Спасибо! Вот и получилось! - person btraas; 10.04.2021

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

Отладчик Xcode НЕ позволяет Any Crash Reporter обрабатывать отчеты о сбоях. Это потому, что XCode переопределяет любые перехватчики в обратных вызовах обработки сбоев. Это происходит только тогда, когда:

  • запущенное приложение в симуляторе (с включенным отладчиком)
  • запуск приложения на iDevice путем прямой сборки и запуска из Xcode с включенным отладчиком.

Чтобы убедиться, что во время тестирования сообщается о сбое (http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected-):

  1. Симулятор запуска
  2. Нажмите стоп
  3. Запустите приложение и вызовите сбой
  4. Перезапустите приложение из симулятора
  5. См. Отчет о сбое на веб-панели управления.

Хотя супер-старое видео все еще актуально, вот видео с описанными выше шагами (пример из Crittercism): https://www.youtube.com/watch?v=sU6Su3PBFH4

person pixelknitter    schedule 29.04.2014
comment
Crashlytics отключается при обнаружении подключенного отладчика. Не потому, что это не сработает, а потому, что это помешает отладчику работать правильно. Crashlytics использует те же механизмы, что и сам отладчик, и было бы очень неприятно, если бы SDK испортил нормальный процесс отладки. Для справки, я написал большую часть Crashlytics SDK. - person Mattie; 08.07.2018

Для меня проблема заключалась в том, что устройство было подключено к моему Mac :) From этот источник:

Кроме того, если ваше устройство подключено к вашему Mac, отладчик XCode также вступит в игру. Так что просто отключите устройство перед тестированием :)

person Fengson    schedule 09.09.2016

Я нашел решение, выполнив следующие шаги:
1. Перейдите в Edit Scheme 2. Выполните -> Info 3. Измените конфигурацию сборки для выпуска. Теперь запустите приложение и выйдите из него. Вы получите почту.

person Gurjinder Singh    schedule 20.07.2017

Недавно мы столкнулись с этой проблемой, и я обнаружил, что где-то в процессе сборки скрипт был удален. При повторном добавлении проблема была решена для нас:
./Crashlytics.framework/run <your_api_key> <build_secret>

Примечание. При использовании Cocoapods вы захотите использовать следующее вместо приведенного выше (источник): ./Pods/CrashlyticsFramework/Crashlytics.framework/run

Добавление скрипта сборки:

  1. Чтобы добавить этап сборки сценария выполнения в Xcode 6, выберите цель приложения в своем проекте, затем выберите «Фазы сборки».
  2. Щелкните маленький значок «плюс» и выберите «New Run Script Build Phase».
  3. Теперь вы должны увидеть раздел «Выполнить сценарий» в середине параметров этапа сборки, как показано выше.
  4. Вставьте скрипт в тело этапа сборки Run Script.

Приведенная выше цитата взята из визуального руководства Crashlytics, на которое имеется ссылка в this post.

Примечание. Я изначально дословно опубликовал этот ответ для кода ошибки Crashlytics: 202 при отправке файлов.

person James Nelson    schedule 29.12.2014
comment
Кажется, это мне помогло. - person Chris Prince; 19.03.2015
comment
Раньше я использовал ткань для интеграции с твиттером, теперь я хочу крашлитис, также я добавил фреймворк и выполнил все инструкции, но я не получал отчетов о сбоях на мою приборную панель, пожалуйста, помогите мне - person RameshIos; 13.05.2015
comment
@iOS_Ramesh Я хотел бы попытаться помочь вам, но, не зная больше, это будет сложно. Для этого вам следует открыть новый вопрос с указанием того, где вы находитесь (шаг, который вы выполнили для интеграции, любые соответствующие фрагменты кода и любые отзывы, которые вы получаете от Crashlytics или консоли). - person James Nelson; 13.05.2015
comment
Я уже опубликовал новый вопрос ... stackoverflow.com/questions/30215049/ - person RameshIos; 14.05.2015
comment
Спасибо за подсказку. У нас была отметка [Release = $ {CONFIGURATION}] в нашем сценарии выполнения, и мы переименовали нашу конфигурацию выпуска. - person Marián Černý; 30.07.2015

С сайта RayWenderlich:

Вы не получите никаких отчетов о сбоях, если Xcode перехватит событие сбоя! Чтобы все приведенные ниже примеры работали, вам нужно создать и запустить приложение, а затем нажать кнопку остановки в Xcode. Таким образом, на устройстве будет установлена ​​последняя версия. Как только это будет сделано, вы можете запустить приложение на самом устройстве, а затем завершить его все, что захотите! Все сбои на вашем устройстве iOS будут обнаружены и отправлены на серверный компонент службы, которую вы интегрировали в приложение. Отчеты о сбоях обычно отправляются на сервер при следующем запуске приложения, поэтому для создания отчета о сбоях на сервере необходимо выполнить следующие действия: Сборка и запуск в Xcode. Нажмите кнопку остановки. Запустите приложение на своем устройстве iOS. Сделайте приложение аварийным. Снова запустите приложение.

person Michel Goñi    schedule 08.09.2015

Crashlytics у меня работает до сих пор. Не знаю почему, но теперь это не работает.

Вы должны включить режим отладки

[Crashlytics sharedInstance].debugMode = YES;

Моя проблема здесь, Код ошибки Crashlytics: 202 при отправке файлов :(

person Tony    schedule 12.08.2013

Убедитесь, что вы не вызываете сбой слишком рано.

Установите [Crashlytics sharedInstance].debugMode в YES;

Следить за

Crashlytics] Settings loaded

в журналах консоли Xcode.

Затем принудительно завершите работу и перезапустите приложение, и теперь о сбое будет сообщено.

person erkanyildiz    schedule 15.10.2013

Я столкнулся с аналогичной проблемой при попытке выполнить тестовый аварийный код.

Crashlytics.sharedInstance().crash()

Я запускал свое приложение с устройства без Xcode, и сбой не отображался на панели мониторинга Crashlytics. Для меня сработал следующий совет с сайта Crashlytics:

  • Обязательно запустите приложение после сбоя, чтобы можно было загрузить сбой.

Я закомментировал приведенный выше вызов crash () и повторно запустил приложение. Затем сбой обнаружился на панели инструментов.

person Ravi    schedule 26.07.2016

Это для xcode 9 из crashlytics 3.4.0  ШАГ1 ШАГ2

После этого наберитесь терпения и подождите несколько минут.

person Ted    schedule 10.11.2015

Вы пробовали запустить [[Crashlytics sharedInstance] crash] на устройстве и посмотреть, будет ли об этом сообщено? Есть несколько причин, по которым Crashlytics может не работать, в том числе другие отчеты о сбоях и т. Д.

person Patrick Tescher    schedule 23.07.2013
comment
Нет, я использую int * x = NULL; * х = 42; код, чтобы увидеть отчет о сбое. Более того, мое приложение также вылетает из-за другой базовой модели данных. - person farhad rubel; 24.07.2013

Если вы не загрузите файл dSYM, Crashlytics не покажет ваш сбой, даже если отчет был успешно загружен.

Вы можете столкнуться с этой проблемой, если настроили сценарий сборки для работы только на вашем CI-сервере. Затем, если вы скопировали свое приложение на свой телефон через xcode и запускаете его без привязки к отладчику, отчет будет загружен, но проигнорирован из-за отсутствия файла dSYM.

person thetrutz    schedule 28.04.2014
comment
В качестве справки: support.crashlytics.com/knowledgebase/articles/ - person thetrutz; 24.06.2014

Иногда для отображения журналов требуется некоторое время. Я могу их найти через 15-20 минут

person Lax    schedule 22.03.2017

Одна из проблем, я считаю, что на этапе выполнения сценария должна быть отдельная фаза выполнения сценария для CrashLytics. Когда был запущен скрипт

./Fabric.framework/run

С некоторыми из моих других скриптов все было в порядке, отчет журнала CrashLytics был отправлен, но в веб-интерфейсе ничего не было.

Когда я добавляю еще одну фазу сценария запуска только с запуском Fabric, это выглядит как волшебство :)

Моя первая попытка была с коконами, но это не сработало. Когда я вручную добавляю всю структуру и отдельную фазу запуска скрипта, которая работала.

person karim    schedule 29.09.2017

Это сработало для меня,

Если вы тестируете iDevice, просто отключите iDevice от своего Xcode и запустите приложение. Теперь, если произошел сбой, он будет обновлен на панели инструментов.

person Mohammad Zaid Pathan    schedule 04.12.2015

Я решил, сняв флажок «Запускать скрипт только при установке» в «Выполнить скрипт» (один для Fabric (crashlytics))

введите описание изображения здесь

person Shaz    schedule 21.06.2015
comment
Это просто скрипт, который загружает символы в Crashlytics; как это решить проблему, когда отчеты о сбоях не отправляются? Какие шаги нужно предпринять, чтобы избежать использования Crashlytics, если символы не были загружены? Этот ответ вводит в заблуждение и просто неверен. - person Droppy; 21.06.2015