Я установил Crashlytics в своем единственном приложении для iOS и установил его на реальном устройстве. Моя панель мониторинга Crashlytics показывает это, я успешно добавил приложение. Однако он не отправляет отчет о сбое. У меня не очень хорошая скорость интернета. Но я могу проверять электронную почту с этого устройства. Кто-нибудь может догадаться, в чем проблема?
Crashlytics не отправляет отчет о сбое с iPhone
Ответы (17)
Отладчик Xcode НЕ позволяет Crashlytics обрабатывать отчеты о сбоях. Да, это кажется странным даже мне, когда я впервые читаю это, но это факт (Источник). По этой причине мы никогда не видим отчет о сбоях. Когда:
- запуск приложения в симуляторе
- запуск приложения на iDevice путем прямой сборки и запуска из Xcode с включенным отладчиком.
Чтобы убедиться, что во время тестирования сообщается о сбое (скопировано с сайта поддержки Crashlytics):
1. Запустить симулятор
2. Нажмите «Стоп»
3. Запустите приложение и принудительно завершите работу
4. Перезапустите приложение из симулятора
5. Просмотрите отчет о сбое на веб-панели управления.
РЕДАКТИРОВАТЬ:
Добавлена ссылка; Crashlytics также предоставляет короткую статью о быстрый способ вызвать сбой.
Да будет поздно, но работай на 100%
Внесите некоторые изменения в настройки сборки проекта, как на изображении ниже.
Основная причина, по которой любой репортер сбоев не будет работать на iOS, связана с вмешательством разных репортеров сбоев. Однако в случае с Crashlytics может быть что-то конкретное, из-за чего отчет о сбое не отправляется.
Отладчик Xcode НЕ позволяет Any Crash Reporter обрабатывать отчеты о сбоях. Это потому, что XCode переопределяет любые перехватчики в обратных вызовах обработки сбоев. Это происходит только тогда, когда:
- запущенное приложение в симуляторе (с включенным отладчиком)
- запуск приложения на iDevice путем прямой сборки и запуска из Xcode с включенным отладчиком.
Чтобы убедиться, что во время тестирования сообщается о сбое (http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected-):
- Симулятор запуска
- Нажмите стоп
- Запустите приложение и вызовите сбой
- Перезапустите приложение из симулятора
- См. Отчет о сбое на веб-панели управления.
Хотя супер-старое видео все еще актуально, вот видео с описанными выше шагами (пример из Crittercism): https://www.youtube.com/watch?v=sU6Su3PBFH4
Для меня проблема заключалась в том, что устройство было подключено к моему Mac :) From этот источник:
Кроме того, если ваше устройство подключено к вашему Mac, отладчик XCode также вступит в игру. Так что просто отключите устройство перед тестированием :)
Я нашел решение, выполнив следующие шаги:
1. Перейдите в Edit Scheme 2. Выполните -> Info 3. Измените конфигурацию сборки для выпуска. Теперь запустите приложение и выйдите из него. Вы получите почту.
Недавно мы столкнулись с этой проблемой, и я обнаружил, что где-то в процессе сборки скрипт был удален. При повторном добавлении проблема была решена для нас: ./Crashlytics.framework/run <your_api_key> <build_secret>
Примечание. При использовании Cocoapods вы захотите использовать следующее вместо приведенного выше (источник): ./Pods/CrashlyticsFramework/Crashlytics.framework/run
Добавление скрипта сборки:
- Чтобы добавить этап сборки сценария выполнения в Xcode 6, выберите цель приложения в своем проекте, затем выберите «Фазы сборки».
- Щелкните маленький значок «плюс» и выберите «New Run Script Build Phase».
- Теперь вы должны увидеть раздел «Выполнить сценарий» в середине параметров этапа сборки, как показано выше.
- Вставьте скрипт в тело этапа сборки Run Script.
Приведенная выше цитата взята из визуального руководства Crashlytics, на которое имеется ссылка в this post.
Примечание. Я изначально дословно опубликовал этот ответ для кода ошибки Crashlytics: 202 при отправке файлов.
С сайта RayWenderlich:
Вы не получите никаких отчетов о сбоях, если Xcode перехватит событие сбоя! Чтобы все приведенные ниже примеры работали, вам нужно создать и запустить приложение, а затем нажать кнопку остановки в Xcode. Таким образом, на устройстве будет установлена последняя версия. Как только это будет сделано, вы можете запустить приложение на самом устройстве, а затем завершить его все, что захотите! Все сбои на вашем устройстве iOS будут обнаружены и отправлены на серверный компонент службы, которую вы интегрировали в приложение. Отчеты о сбоях обычно отправляются на сервер при следующем запуске приложения, поэтому для создания отчета о сбоях на сервере необходимо выполнить следующие действия: Сборка и запуск в Xcode. Нажмите кнопку остановки. Запустите приложение на своем устройстве iOS. Сделайте приложение аварийным. Снова запустите приложение.
Crashlytics у меня работает до сих пор. Не знаю почему, но теперь это не работает.
Вы должны включить режим отладки
[Crashlytics sharedInstance].debugMode = YES;
Моя проблема здесь, Код ошибки Crashlytics: 202 при отправке файлов :(
Убедитесь, что вы не вызываете сбой слишком рано.
Установите [Crashlytics sharedInstance].debugMode
в YES
;
Следить за
Crashlytics] Settings loaded
в журналах консоли Xcode.
Затем принудительно завершите работу и перезапустите приложение, и теперь о сбое будет сообщено.
Я столкнулся с аналогичной проблемой при попытке выполнить тестовый аварийный код.
Crashlytics.sharedInstance().crash()
Я запускал свое приложение с устройства без Xcode, и сбой не отображался на панели мониторинга Crashlytics. Для меня сработал следующий совет с сайта Crashlytics:
- Обязательно запустите приложение после сбоя, чтобы можно было загрузить сбой.
Я закомментировал приведенный выше вызов crash () и повторно запустил приложение. Затем сбой обнаружился на панели инструментов.
Вы пробовали запустить [[Crashlytics sharedInstance] crash]
на устройстве и посмотреть, будет ли об этом сообщено? Есть несколько причин, по которым Crashlytics может не работать, в том числе другие отчеты о сбоях и т. Д.
Если вы не загрузите файл dSYM, Crashlytics не покажет ваш сбой, даже если отчет был успешно загружен.
Вы можете столкнуться с этой проблемой, если настроили сценарий сборки для работы только на вашем CI-сервере. Затем, если вы скопировали свое приложение на свой телефон через xcode и запускаете его без привязки к отладчику, отчет будет загружен, но проигнорирован из-за отсутствия файла dSYM.
Иногда для отображения журналов требуется некоторое время. Я могу их найти через 15-20 минут
Одна из проблем, я считаю, что на этапе выполнения сценария должна быть отдельная фаза выполнения сценария для CrashLytics. Когда был запущен скрипт
./Fabric.framework/run
С некоторыми из моих других скриптов все было в порядке, отчет журнала CrashLytics был отправлен, но в веб-интерфейсе ничего не было.
Когда я добавляю еще одну фазу сценария запуска только с запуском Fabric, это выглядит как волшебство :)
Моя первая попытка была с коконами, но это не сработало. Когда я вручную добавляю всю структуру и отдельную фазу запуска скрипта, которая работала.
Это сработало для меня,
Если вы тестируете iDevice, просто отключите iDevice от своего Xcode и запустите приложение. Теперь, если произошел сбой, он будет обновлен на панели инструментов.
Я решил, сняв флажок «Запускать скрипт только при установке» в «Выполнить скрипт» (один для Fabric (crashlytics))