하나의 iOS 애플리케이션에 Crashlytics를 설정하고 실제 기기에 애플리케이션을 설치했습니다. 내 Crashlytics 대시 보드에 앱을 성공적으로 추가했습니다. 그러나 충돌 보고서를 보내지 않습니다. 내 인터넷 속도가 그렇게 좋지 않습니다. 하지만이 기기에서 내 이메일을 확인할 수 있습니다. 누구든지 어디 문제가 있는지 짐작할 수 있습니까?
하나의 iOS 애플리케이션에 Crashlytics를 설정하고 실제 기기에 애플리케이션을 설치했습니다. 내 Crashlytics 대시 보드에 앱을 성공적으로 추가했습니다. 그러나 충돌 보고서를 보내지 않습니다. 내 인터넷 속도가 그렇게 좋지 않습니다. 하지만이 기기에서 내 이메일을 확인할 수 있습니다. 누구든지 어디 문제가 있는지 짐작할 수 있습니까?
답변:
Xcode 디버거는 Crashlytics가 오류 보고서를 처리하는 것을 허용하지 않습니다. 네, 처음 읽었을 때도 이상하게 보이지만 사실입니다 ( Source ). : 그의는 때 우리가 충돌 보고서를 보지 못할 이유
시뮬레이터에서 응용 프로그램을 실행 -
- 직접 구축에 디버거를 엑스 코드에서 실행으로의 iDevice에서 응용 프로그램을 실행할 수 있습니다.
테스트 중에 충돌이보고되었는지 확인하려면 ( Crashlytics 지원 사이트에서 복사 ) :
1. 시뮬레이터 시작
2. 중지를 누릅니다.
3. 앱을 실행하고 강제로 충돌을 실행합니다
. 4. 시뮬레이터에서 앱을 다시 시작합니다
. 5. 웹 대시 보드.
편집하다:
참조를 추가했습니다. Crashlytics는 또한 비정상 종료 를 강제하는 빠른 방법 에 대한 짧은 도움말을 제공합니다 .
충돌보고자가 iOS에서 작동하지 않는 주된 이유는 다른 충돌보고자의 간섭 때문입니다. 그러나 특히 Crashlytics를 사용하면 특정 문제로 인해 오류 보고서가보고되지 않을 수 있습니다.
Xcode 디버거는 Any Crash Reporter 가 충돌 보고서를 처리 하도록 허용하지 않습니다 . 이는 XCode가 충돌 처리 콜백에 대한 모든 후크를 재정의하기 때문입니다. 이것은 다음과 같은 경우에만 발생합니다.
테스트 중에 충돌이보고되었는지 확인하려면 ( http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected- ) :
매우 오래된 동영상이지만 여전히 관련성이 있지만 위 단계에 대한 동영상입니다 (크 리터 시즘의 예) : https://www.youtube.com/watch?v=sU6Su3PBFH4
최근에이 문제가 발생하여 빌드 스크립트가 제거되는 과정에서 발견되었습니다. 다음과 같이 다시 추가하면 문제가 해결되었습니다.
./Crashlytics.framework/run <your_api_key> <build_secret>
참고 : Cocoapods를 사용할 때 위의 ( source ) 대신 다음을 원할 것입니다 .
./Pods/CrashlyticsFramework/Crashlytics.framework/run
빌드 스크립트 추가 :
- Xcode 6에서 Run Script Build Phase를 추가하려면 프로젝트에서 애플리케이션 대상을 선택한 다음 "Build Phases"를 선택합니다.
- 작은 "더하기"아이콘을 클릭하고 "새 실행 스크립트 빌드 단계"를 선택합니다.
- 이제 위와 같이 빌드 단계 옵션 중간에 스크립트 실행 섹션이 표시됩니다.
- Run Script Build Phase 본문에 스크립트를 붙여 넣습니다 .`
위의 인용문은 이 게시물 에서 참조 된 Crashlytics의 시각적 가이드 에서 가져온 것 입니다.
참고 : 원래 Crashlytics 오류 코드 : 202 when Submitting files 에 대해이 답변을 그대로 게시했습니다 .
RayWenderlich 사이트에서 :
Xcode가 충돌 이벤트를 가로 채면 충돌 보고서를받을 수 없습니다! 아래의 모든 예제가 작동하도록하려면 애플리케이션을 빌드하고 실행 한 다음 Xcode에서 중지 버튼을 클릭해야합니다. 이렇게하면 장치에 최신 버전이 설치됩니다. 이 작업이 완료되면 장치 자체에서 앱을 시작한 다음 원하는 모든 작업을 중단 할 수 있습니다! iOS 장치의 모든 충돌이 포착되어 앱에 통합 한 서비스의 서버 구성 요소로 전송됩니다. 충돌 보고서는 일반적으로 다음에 앱을 시작할 때 서버로 전송되므로 서버에서 충돌 보고서를 생성하기 위해 따라야 할 단계는 다음과 같습니다. Xcode에서 빌드하고 실행합니다. 중지 버튼을 누르십시오. iOS 기기에서 앱을 실행하세요. 앱 충돌을 만듭니다. 앱을 다시 실행하십시오.
Crashlytics는 지금까지 저에게 효과적입니다. 이유는 모르겠지만 지금은 작동하지 않습니다.
디버그 모드를 켜야합니다.
[Crashlytics sharedInstance].debugMode = YES;
내 문제는 여기에 Crashlytics 오류 코드 : 202 파일 제출시 :(
너무 일찍 충돌을 일으키지 않도록하십시오.
설정 [Crashlytics sharedInstance].debugMode
하기 YES
;
주의하다
Crashlytics] Settings loaded
Xcode 콘솔 로그에서.
그런 다음 충돌을 강제하고 앱을 다시 시작하면 충돌이 지금보고됩니다.
[[Crashlytics sharedInstance] crash]
장치에서 실행 해보고 보고되었는지 확인 했습니까? 다른 오류보고자 등을 포함하여 Crashlytics가 작동하지 않는 몇 가지 이유가 있습니다.
dSYM 파일을 업로드하지 않으면 보고서가 성공적으로 업로드 되었더라도 Crashlytics에서 오류를 표시하지 않습니다.
CI 서버에서만 실행되도록 빌드 스크립트를 설정 한 경우이 문제가 발생할 수 있습니다. 그런 다음 xcode를 통해 앱을 휴대폰에 복사하고 디버거에 연결하지 않고 실행하면 dSYM 파일 누락으로 인해 보고서가 업로드되지만 무시됩니다.
스크립트 실행 단계에서 CrashLytics를위한 별도의 실행 스크립트 단계 여야한다고 생각하는 문제 중 하나입니다. 스크립트 실행시기
./Fabric.framework/run
내 다른 스크립트 중 일부를 사용하면 모든 것이 정상이며 CrashLytics 로그 표시 보고서가 제출되었지만 웹 인터페이스에는 아무것도 없었습니다.
Fabric 실행만으로 다른 Run 스크립트 단계를 추가하면 마술처럼 보입니다. :)
첫 번째 시도는 코코아 포드 였지만 작동하지 않았습니다. 모든 프레임 워크와 작동하는 별도의 실행 스크립트 단계를 수동으로 추가 할 때.
이것은 나를 위해 일했습니다.
iDevice에서 테스트하는 경우 Xcode로 iDevice를 분리하고 앱을 실행하십시오. 이제 충돌이 발생하면 대시 보드에서 업데이트됩니다.