Crashlytics가 iPhone에서 오류 보고서를 보내지 않음


85

하나의 iOS 애플리케이션에 Crashlytics를 설정하고 실제 기기에 애플리케이션을 설치했습니다. 내 Crashlytics 대시 보드에 앱을 성공적으로 추가했습니다. 그러나 충돌 보고서를 보내지 않습니다. 내 인터넷 속도가 그렇게 좋지 않습니다. 하지만이 기기에서 내 이메일을 확인할 수 있습니다. 누구든지 어디 문제가 있는지 짐작할 수 있습니까?


5
Crashlytics 서비스와 동일한 문제가 있습니다. 장치의 충돌 보고서는 절대로 전송되지 않습니다 (내 경험상). 시뮬레이터에서만 전송됩니다. 나는 결국 크 리터 시즘 충돌보고와 오류 처리를 사용하게되었습니다.
Sam Spencer

나에게도 같은 일이 일어난다. 실제 개발 장치가 아닌 다른 장치로 응용 프로그램을 사용해보십시오. 이렇게하면 충돌 보고서를받을 수 있습니다.
Samet DEDE

예, 개발 장치를 사용하고 있습니다. 그것이 문제를 일으키고 있습니까?
farhad rubel 2013

1
완전한 설정 설명이나 테스트 프로젝트가 없으면 대답 할 수 없습니다. crashlytics 지원에 문의해야합니다. 거친 추측은 도움이되지 않습니다.
Kerni 2013

3
Crashlytics의 누군가가 StackOverflow에서이 게시물을보고 저에게 이메일로 연락을해서 너무 놀랐습니다. 그는이 문제를 해결하도록 도와주고 있습니다. 무슨 일이 일어나는지 보자.
farhad rubel 2013

답변:


81

Xcode 디버거는 Crashlytics가 오류 보고서를 처리하는 것을 허용하지 않습니다. 네, 처음 읽었을 때도 이상하게 보이지만 사실입니다 ( Source ). : 그의는 때 우리가 충돌 보고서를 보지 못할 이유
시뮬레이터에서 응용 프로그램을 실행 -
- 직접 구축에 디버거를 엑스 코드에서 실행으로의 iDevice에서 응용 프로그램을 실행할 수 있습니다.

테스트 중에 충돌이보고되었는지 확인하려면 ( Crashlytics 지원 사이트에서 복사 ) :
1. 시뮬레이터 시작
2. 중지를 누릅니다.
3. 앱을 실행하고 강제로 충돌을 실행합니다
. 4. 시뮬레이터에서 앱을 다시 시작합니다
. 5. 웹 대시 보드.

편집하다:

참조를 추가했습니다. Crashlytics는 또한 비정상 종료 를 강제하는 빠른 방법 에 대한 짧은 도움말을 제공합니다 .


6
이것은 나를 도왔다. 나는 또한 어떤 경우에는 그것을 발견했습니다. Crashlytics는 애플리케이션이 다시 열리지 않는 한 오류 보고서를 보내지 않습니다. 반복 : 사용자가 충돌을 경험합니다. 사용자가 애플리케이션을 다시 엽니 다. Crashlytics는 이전 오류 보고서를 보냅니다.
tambykojak

1
@tambykojak 이것은 대부분의 경우 iOS 크래시가 매우 불안정하고 더 안전한 경로는 즉시 보내는 것보다 다음 앱로드시 크래시 보고서를 보내는 것입니다. 많은 크래시보고 도구는 iOS 및 기타 비 VM 크래시 핸들러에서이 패러다임을 사용합니다.
pixelknitter 2014 년

2
감사합니다. 정답으로 표시되어야합니다. :)
iMemon dec.

이 경우 dsym을 업로드해야합니까? 그렇다면 어디에서 찾을 수 있습니까?
SoliQuiD

링크가 죽었습니다.
luky


20

충돌보고자가 iOS에서 작동하지 않는 주된 이유는 다른 충돌보고자의 간섭 때문입니다. 그러나 특히 Crashlytics를 사용하면 특정 문제로 인해 오류 보고서가보고되지 않을 수 있습니다.

Xcode 디버거는 Any Crash Reporter 가 충돌 보고서를 처리 하도록 허용하지 않습니다 . 이는 XCode가 충돌 처리 콜백에 대한 모든 후크를 재정의하기 때문입니다. 이것은 다음과 같은 경우에만 발생합니다.

  • 시뮬레이터에서 앱 실행 (디버거 사용)
  • 디버거가 켜진 상태에서 Xcode에서 직접 빌드하고 실행하여 iDevice에서 앱을 실행합니다.

테스트 중에 충돌이보고되었는지 확인하려면 ( http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected- ) :

  1. 시뮬레이터 시작
  2. 정지를 누르십시오
  3. 앱을 실행하고 강제 종료
  4. 시뮬레이터에서 앱 다시 시작
  5. 웹 대시 보드에서 충돌 보고서를 참조하십시오.

매우 오래된 동영상이지만 여전히 관련성이 있지만 위 단계에 대한 동영상입니다 (크 리터 시즘의 예) : https://www.youtube.com/watch?v=sU6Su3PBFH4


1
Crashlytics는 연결된 디버거를 감지하면 자동으로 사용 중지됩니다. 작동하지 않기 때문이 아니라 디버거 가 제대로 작동 하지 못하게하기 때문입니다 . Crashlytics는 디버거 자체에서 사용하는 것과 동일한 메커니즘을 사용하며 SDK가 정상적인 디버깅 흐름을 엉망으로 만드는 것은 정말 실망 스러울 것입니다. 참고로 대부분의 Crashlytics SDK를 작성했습니다.
Mattie

8

나에게 문제는 장치가 내 Mac에 연결되어 있다는 것입니다. :) 이 소스에서 :

또한 기기를 Mac에 연결 한 경우 XCode의 디버거도 함께 작동합니다. 따라서 테스트하기 전에 장치를 분리하십시오. :)


7

다음 단계를 사용하여 솔루션을 찾았습니다
. 1. Edit Scheme 2. Run-> Info 3. Build Configuration을 release로 변경합니다. 이제 앱 충돌을 실행하십시오. 우편을 받게됩니다.


6

최근에이 문제가 발생하여 빌드 스크립트가 제거되는 과정에서 발견되었습니다. 다음과 같이 다시 추가하면 문제가 해결되었습니다.
./Crashlytics.framework/run <your_api_key> <build_secret>

참고 : Cocoapods를 사용할 때 위의 ( source ) 대신 다음을 원할 것입니다 . ./Pods/CrashlyticsFramework/Crashlytics.framework/run

빌드 스크립트 추가 :

  1. Xcode 6에서 Run Script Build Phase를 추가하려면 프로젝트에서 애플리케이션 대상을 선택한 다음 "Build Phases"를 선택합니다.
  2. 작은 "더하기"아이콘을 클릭하고 "새 실행 스크립트 빌드 단계"를 선택합니다.
  3. 이제 위와 같이 빌드 단계 옵션 중간에 스크립트 실행 섹션이 표시됩니다.
  4. Run Script Build Phase 본문에 스크립트를 붙여 넣습니다 .`

위의 인용문은 이 게시물 에서 참조 된 Crashlytics의 시각적 가이드 에서 가져온 것 입니다.

참고 : 원래 Crashlytics 오류 코드 : 202 when Submitting files대해이 답변을 그대로 게시했습니다 .


이것은 나를 도운 것 같습니다.
Chris Prince

1
이전에 트위터 통합을 위해 패브릭을 사용했습니다. 이제는 crashlytics를 원합니다. 프레임 워크를 추가하고 모든 지침을 따랐지만 대시 보드에 충돌 보고서를받지 못했습니다. 도와주세요
RameshIos

@iOS_Ramesh 나는 당신을 돕기 위해 노력하고 싶지만 더 많은 것을 알지 못하면 어려울 것입니다. 이렇게하려면 현재 위치 (통합을 위해 수행 한 단계, 적절한 코드 스 니펫, Crashlytics 또는 콘솔에서받는 피드백)를 설명하는 새로운 질문을 열어야합니다.
James Nelson

나는 이미 ... 새 질문을 게시 stackoverflow.com/questions/30215049/...
RameshIos

1
힌트 주셔서 감사합니다. Run Script에서 [ "Release"= "$ {CONFIGURATION}"]을 확인했고 릴리스 구성의 이름을 변경했습니다.
Marián Černý 2015

4

RayWenderlich 사이트에서 :

Xcode가 충돌 이벤트를 가로 채면 충돌 보고서를받을 수 없습니다! 아래의 모든 예제가 작동하도록하려면 애플리케이션을 빌드하고 실행 한 다음 Xcode에서 중지 버튼을 클릭해야합니다. 이렇게하면 장치에 최신 버전이 설치됩니다. 이 작업이 완료되면 장치 자체에서 앱을 시작한 다음 원하는 모든 작업을 중단 할 수 있습니다! iOS 장치의 모든 충돌이 포착되어 앱에 통합 한 서비스의 서버 구성 요소로 전송됩니다. 충돌 보고서는 일반적으로 다음에 앱을 시작할 때 서버로 전송되므로 서버에서 충돌 보고서를 생성하기 위해 따라야 할 단계는 다음과 같습니다. Xcode에서 빌드하고 실행합니다. 중지 버튼을 누르십시오. iOS 기기에서 앱을 실행하세요. 앱 충돌을 만듭니다. 앱을 다시 실행하십시오.



3

너무 일찍 충돌을 일으키지 않도록하십시오.

설정 [Crashlytics sharedInstance].debugMode하기 YES;

주의하다

Crashlytics] Settings loaded

Xcode 콘솔 로그에서.

그런 다음 충돌을 강제하고 앱을 다시 시작하면 충돌이 지금보고됩니다.


3

테스트 충돌 코드를 시도 할 때 비슷한 문제가 발생했습니다.

Crashlytics.sharedInstance().crash()

Xcode없이 기기에서 내 앱을 실행하고 있었는데 충돌이 Crashlytics 대시 보드에 표시되지 않았습니다. 저에게 도움이 된 것은 Crashlytics 웹 사이트의 다음 팁이었습니다.

  • 크래시가 업로드 될 수 있도록 앱을 크래시 한 후 실행해야합니다.

위의 crash () 호출을 주석 처리하고 앱을 다시 실행했습니다. 그런 다음 대시 보드에 충돌이 나타났습니다.


2

이것은 crashlytics 3.4.0의 xcode 9 용입니다. 1 단계 2 단계

그런 다음 인내심을 갖고 몇 분 동안 기다리십시오.


1

[[Crashlytics sharedInstance] crash]장치에서 실행 해보고 보고되었는지 확인 했습니까? 다른 오류보고자 등을 포함하여 Crashlytics가 작동하지 않는 몇 가지 이유가 있습니다.


아니요, int * x = NULL을 사용하고 있습니다. * x = 42; 충돌 보고서를 보려면 코드. 또한 내 앱은 다른 핵심 데이터 모델에 대해 충돌합니다.
farhad rubel 2013

1

dSYM 파일을 업로드하지 않으면 보고서가 성공적으로 업로드 되었더라도 Crashlytics에서 오류를 표시하지 않습니다.

CI 서버에서만 실행되도록 빌드 스크립트를 설정 한 경우이 문제가 발생할 수 있습니다. 그런 다음 xcode를 통해 앱을 휴대폰에 복사하고 디버거에 연결하지 않고 실행하면 dSYM 파일 누락으로 인해 보고서가 업로드되지만 무시됩니다.



1

때로는 로그가 표시되는 데 시간이 걸립니다. 15-20 분 후에 찾을 수 있습니다.


0

스크립트 실행 단계에서 CrashLytics를위한 별도의 실행 스크립트 단계 여야한다고 생각하는 문제 중 하나입니다. 스크립트 실행시기

./Fabric.framework/run

내 다른 스크립트 중 일부를 사용하면 모든 것이 정상이며 CrashLytics 로그 표시 보고서가 제출되었지만 웹 인터페이스에는 아무것도 없었습니다.

Fabric 실행만으로 다른 Run 스크립트 단계를 추가하면 마술처럼 보입니다. :)

첫 번째 시도는 코코아 포드 였지만 작동하지 않았습니다. 모든 프레임 워크와 작동하는 별도의 실행 스크립트 단계를 수동으로 추가 할 때.


-1

이것은 나를 위해 일했습니다.

iDevice에서 테스트하는 경우 Xcode로 iDevice를 분리하고 앱을 실행하십시오. 이제 충돌이 발생하면 대시 보드에서 업데이트됩니다.


-3

스크립트 실행 (Fabric (crashlytics) 용)에서 "설치할 때만 스크립트 실행"옵션을 선택 취소하여 해결했습니다.

여기에 이미지 설명 입력


Crashlytics에 기호를 업로드하는 스크립트입니다. 충돌 보고서가 전송되지 않는 문제를 어떻게 해결합니까? 기호가 업로드되지 않은 상태에서 Crashlytics를 사용하지 않으려면 어떻게해야합니까? 이 대답은 오해의 소지가 있으며 명백히 잘못되었습니다.
Droppy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.