project/개발 업무
Lottie 리소스 문제로 앱이 초기화되는 현상
lgvv
2022. 7. 12. 14:27
Lottie 리소스 문제로 앱이 초기화되는 현상
웹 앱이었는데 간단한 동작에서 크래시 발생
- 결론: 로티 리소스 자체의 문제
개발활경
Xcode 13.2.1
문제상황
1. 특정 상황에서 메모리가 비정상적으로 튐.
2. 스크롤을 하다가 앱이 죽거나 앱이 흰 화면이 뜨면서 초기화가 되어버림.
접근법
RxSwift 기반으로 되어 있어서 어느 지점에서 메모리릭이 나는게아닐까 접근
Xcode Instruments 시도
- 1. Edit Scheme > Profile에 들어가서 build configuration을 debug로 세팅
- 상단에 Xcode simulator 설정하는거 옆에 위치
- 2. 아래 사진처럼 저 부분을 꾹!! 누르고 있으면 저렇게 뜨는데 저거 Build for Profiling으로 변경
3. 아래와 같은 Instruments 창이 나타남
4. 여기서 Leaks을 선택
5. 위에 빨간 버튼을 누르고 앱을 사용하면서 어디서 문제가 발생하는지 찾기
결과 분석
아래 이미지를 보면 Leak은 나는데 저게 도대체 왜 나는지 알 수 없었음 ...
이미지와 관련한게 메모리에 엄청나게 할당되는데, 크래시나 웹뷰가 초기화 될 만큼 뭐가 할당될 정도로 서비스가 크지 않아서 의문이 들었음.
아래 스택 오버플로우를 보고 메모리를 엄청 많이 잡는 친구에 대해서 살펴 보았다.
https://github.com/SDWebImage/SDWebImage/issues/548
결론
리소스 자체에 문제가 있었다. Lottie를 인디케이터를 사용하고 있었는데, 해당 리소스 자체를 까보니까 정상적인 리소스라고 볼 수 없을 정도로 엄청난 공백과 해독하기 어려운 문자들이 엄청나게 껴 있었다.
결과적으로 리소스를 교체하고 나니 문제가 해결되었는데, 리소스 자체에 문제가 있을수도 있다는 경험을 하게 되었다.
끝.