본문 바로가기

iOS/Tip

[iOS13] Fabric, Crashlytics Crash 이슈 해결하기

안녕하세요.

드디어 iOS13이 정식 릴리즈 되었습니다.

많은 개발자 분들이 iOS13 버전을 대응하느라 바쁘실텐데 (저 포함.. ㅠ)
iOS13Crashlytics의 충돌이 발생했습니다. 하하하하하ㅏ하ㅏㅏ

다행이 빠르게 이슈 처리를 할 수 있었는데요. (쫄려 죽는줄 알았습니다)

원인과 해결 과정은 다음과 같습니다.

 


  1. 원인

    발생한 에러 로그는 다음과 같습니다.

    objc[2474]: Class CLSUserDefaults is implemented in both /System/Library/Frameworks/ClassKit.framework/ClassKit (0x1e89424c8) and "프로젝트경로". One of the two will be used. Which one is undefined.


  2. 분석

    서치결과 해당 내용을 찾을 수 있었습니다.

    Fabirc (or Crashlytics, depending on which versions used) defines a class named CLSUserDefaults.
    It seems that ClassKit in iOS 13 also defines a CLSUserDefaults class, which leads to a name collision.
    It should be fine as long as your app's code not using class CLSUserDefaults directly.
    (대충 ClassKit의 Class와 Fabric, Crashlytics에서 사용중인 Class명이 겹친다는 뜻)


  3. 해결

    다행이 구글에서 빠르게 대응했드라구요?
    (필자는 다른방법으로 먼저 시도해서 삽질을 많이했습니다 ㅠㅠ)

    Crashlytics의 업데이트 로그를 보니 6월 19일에 해당 문제에 대한 업데이트가 있었습니다.
    (3.13.2 June 19, 2019 Fixes a symbol name collision between Crashlytics and ClassKit)

    Crashlytics를 3.13.2 버전 이상을 사용하시면 쉽게 해결할 수 있습니다.

    CocoaPods를 사용하신다면 Podfile에 pod 'Crashlytics', '~>  3.13.2'로 설정해서 사용하시면 됩니다!!

 

 

 

해피코딩 :)