iOS/Tip
[iOS13] Fabric, Crashlytics Crash 이슈 해결하기
콤씨
2019. 9. 25. 09:56
안녕하세요.
드디어 iOS13이 정식 릴리즈 되었습니다.
많은 개발자 분들이 iOS13 버전을 대응하느라 바쁘실텐데 (저 포함.. ㅠ)
iOS13과 Crashlytics의 충돌이 발생했습니다. 하하하하하ㅏ하ㅏㅏ
다행이 빠르게 이슈 처리를 할 수 있었는데요. (쫄려 죽는줄 알았습니다)
원인과 해결 과정은 다음과 같습니다.
- 원인
발생한 에러 로그는 다음과 같습니다.
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. - 분석
서치결과 해당 내용을 찾을 수 있었습니다.
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명이 겹친다는 뜻) - 해결
다행이 구글에서 빠르게 대응했드라구요?
(필자는 다른방법으로 먼저 시도해서 삽질을 많이했습니다 ㅠㅠ)
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'로 설정해서 사용하시면 됩니다!!
해피코딩 :)