2017-09-04 6 views
1

기본적으로 로깅 및 어설 션 동작을 래퍼하는 사용자 지정 함수 집합이 있습니다. 특히 어설 션 클래스 함수와 치명적인 클래스 함수가 ​​있습니다. 둘 다 로그를 생성 한 다음 assert() 또는 fatal()을 수행합니다.수동으로 호출 된 Crashlytics 충돌에 사용자 지정 함수/선/파일 정보를 제공하는 방법

내 경우에는 Crashlytics가 설치되어 있습니다. 따라서 생성 된 로그 메시지는 CLSLogv()로 이동합니다. assert()/fatal()은 Crashlytics 충돌 보고서를 생성합니다. 이것들은 모두 잘 동작합니다.

내 문제는 Crashlytics 대시 보드에 있습니다. 기본적으로 내 문제의 제목과 설명으로 내 래퍼 기능/파일/줄 정보를 제공합니다. 본질적으로 모든 단일 어설 션 이벤트는 다른 원인/호출자에도 불구하고 Crashlytics 대시 보드에서 동일하게 보입니다. crash() 함수는/line/file 함수에 대한 인수를 허용하지 않으므로 assert()/fatal() 대신 Crashlytics.sharedSession(). crash()를 호출해도 도움이되지 않습니다.

다른 방법이 있습니까? 또는 Crashlytics/Fabric/Google에 대한 개선 요청입니까? 감사!

+1

Mike from Fabric 여기. 아래의 답변은이 사용자 정의 정보와 기능 요청을 추가하는 가장 좋은 방법입니다! –

+0

예. 정보를 로그로 가져올 수 있습니다. 그러나 올바른 충돌 기능/줄/파일 정보가 대시 보드의 제목으로 표시되어 문제를 신속하게 구분할 수 있기를 바랍니다. 그렇다면 각 개별 문제를 클릭하여 스택이나 로그를 찾아야합니다. – BiscottiGelato

+0

감사합니다. 그룹화 방법을 사용자 정의 할 수있는 방법이 없습니다. 어설 션하거나 확인하려는 대상에 따라, 치명적이지 않은 예외 접근법을 고려할 수도 있습니다. https://docs.fabric.io/apple/crashlytics/logged-errors.html하지만 전적으로 귀하가 무엇인지에 따라 달라집니다 assert가 true가 아닌 경우 대부분의 assert를 확인하려고 시도하는 것이 어렵게 실패하는 경향이 있습니다. –

답변

1

스위프트는 #file, #function, #line#column과 같은 특수 값을 사용할 수 있습니다. CLSLogv()로를 사용하면 코드가 겪은 정확한 장소를 찾는 데 도움이 될 수 있습니다 :

CLSLogv("I was here: %@.%@, %i:%i", getVaList([ #file, #function, #line, #column ])) 

결과를 Crashlytics 대시 보드 :

1 | 2017-09-05T08:32:22.088Z | I was here: /Users/.../SettingsTableViewController.swift.viewDidLoad(), 27:82 

희망이 있습니다 :)하는 데 도움이됩니다.

+0

로그에 기능/라인/파일을 가져 오는 데 문제가 없습니다. 그러나 충돌 제목은 여전히 ​​내 래퍼입니다. 크래시 제목에 대해 더 많이 이야기하고 있으므로 대시 보드에서 빠르게 눈을 떼지 않고 다른 문제를 이야기하기가 훨씬 쉬워졌습니다. 내 로그는 현재 다음과 같습니다. | \t 04 : 41 : 45 : 715 (UTC) \t | \t 5 | 000A5F62 | JournalViewController.swift : 260 | displayMoment | 마크는 사용할 수 없습니다.로드 순간으로 간주됩니다. 그러나 Crashlytics 대시 보드는 여전히 래퍼 정보로만 흩어져 있습니다. ! [Screenshot] (https://ibb.co/kabfgv) – BiscottiGelato

+0

@BiscottiGelato 알겠습니다 ... 대시 보드에 나타나는 충돌의 제목을 변경할 수있는 설정을 알지 못합니다 ... – nyg