[Crashlytics:Crash] Отчетность отключена

Я получаю следующие сообщения об ошибках при инициализации нашего производственного приложения iOS:

[Crashlytics] Version 3.8.4 (121)
[Crashlytics] Running on iOS Simulator (iPhone), 10.3.0 (16E195) 
[Crashlytics:Crash] Reporting is disabled 
[Crashlytics] Crash reporting could not be initialized 
[Answers] Initialized 
[Fabric] Initialized with kit versions: {
    "com.twitter.answers.ios" = "1.3.4"; 
    "com.twitter.crashlytics.ios" = "3.8.4"; 
    "io.fabric.sdk.ios" = "1.6.11"; 
}

При каждом последующем вызове журнала события возникает следующая ошибка:

[Crashlytics:Crash] WARNING: CLSLog has been used before (or concurrently with) 
    Crashlytics initialization and cannot be recorded. The message was: ...

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

У нас есть версия приложения для Android и iOS, и обе они используют один и тот же идентификатор пакета, поэтому мне интересно, есть ли из-за этого конфликт? Я вижу версию приложения для Android на панели инструментов, и, похоже, она работает правильно. Это приложение изначально было приложением Xamarin, которое компилировалось для обеих платформ, ни одна из которых не включала Fabric/Crashlytics. Теперь мы написали нативные приложения для каждой платформы, и обе используют Fabric/Crashlytics.

Поскольку это уже существующее приложение в обоих магазинах, у нас нет возможности изменить идентификатор пакета любого приложения.


person Paul King    schedule 09.05.2017    source источник
comment
Проблема, с которой я столкнулся, на самом деле была проблемой на серверах Crashlytics. Починили в кратчайшие сроки по телефону. Использование одного и того же bundleID на iOS и Android не проблема.   -  person Paul King    schedule 06.07.2017
comment
У меня точно такая же проблема. Он работает нестабильно, и журнал сборки показывает, что между включением и отключением CLS не было разницы. надо тоже позвонить...   -  person funct7    schedule 10.01.2018
comment
У меня такая же проблема с версией 3.10.1 (129). И каждый раз, когда я использую CLSLog, у меня возникает ошибка: WARNING: CLSLog has been used before (or concurrently with) Crashlytics initialization and cannot be recorded. Есть решение?   -  person ArtFeel    schedule 07.05.2018
comment
@ArtFeel, как я упоминал ранее, в моем случае мне пришлось открыть тикет в Crashlytics, затем, когда мне перезвонили, у меня был короткий разговор со специалистом службы поддержки, и они изменили некоторые настройки на своем сервере, которые устранили проблему. В моем коде все было в порядке. Я не уверен, какие именно изменения они внесли. Удачи!   -  person Paul King    schedule 07.05.2018


Ответы (4)


Убедитесь, что вы инициализировали Crashlytics с помощью Fabric, прежде чем вызывать какие-либо методы Crashlytics:

Fabric.with([Crashlytics.self])
person JAL    schedule 17.05.2017
comment
Если вы используете Firebase, вам больше не нужно делать это в соответствии с документацией. - person Daniel Ryan; 10.04.2019

Один шаг, который я обычно пропускаю, — это убедиться, что вы добавили фазу сборки в свою цель:

"${PODS_ROOT}/Fabric/run" ${FABRIC_API_KEY} ${FABRIC_BUILD_SECRET}

и либо замените ${FABRIC_API_KEY} и ${FABRIC_BUILD_SECRET} своим ключом и секретом, либо добавьте пользовательские настройки сборки для каждого.

person earnshavian    schedule 03.07.2017

По-видимому, бывают случаи, когда Crashlytics не активирует автоматически новые приложения, чтобы они отображались в вашем списке приложений, даже если все закодировано правильно и данные поступают на их серверы. В этом случае отправьте электронное письмо в службу поддержки Crashlytics ([email protected]), содержащее копию записей info.plist для рассматриваемого приложения, и они активируют его для вас. Мне приходилось делать это несколько раз, особенно с расширениями приложений.

person Paul King    schedule 08.10.2018

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

Я видел эти ошибки в различных целях тестирования, где код, который мы тестировали, использовал пользовательскую оболочку ведения журнала, которая вызывала CLSNSLogv(), но тест на самом деле не проходил через AppDelegate и, следовательно, НЕ инициализировал Crashlytics. Попробовав несколько вещей, я убедился, что это работает, когда выполняется как приложение, но в нашей конфигурации оно не работало в конфигурации модульного теста.

Я, скорее всего, изменю нашу собственную оболочку, чтобы обойти CLSNSLogv() во время тестирования. Самое большое преимущество его использования — когда на устройствах происходят сбои, поэтому мы ничего не упустим.

person Tim Shadel    schedule 27.03.2019