본문 바로가기

IT/iOs

Too many symbol files 메세지 대처법

'Too many symbol files' warning 해결법

 

 

 

Too many symbol files - These symbols have no corresponding slice in any binary [~~~~.symbols, ~~~.symbols]

 

어느 날 위 같은 메시지를 포함한 메일이 애플에서 날라왔다며 업체에서 확인 부탁한다고 연락이 왔다.
오랜 시간 유지 보수를 하다 보면 기기 사양이 업데이트 됨에 따라 개발 환경이 변경됨에 따라 
설정을 바꿔줘야 하는 일이 생긴다 
모바일 환경은 특히나 변화 속도가 빨라서 매우 귀찮다

 


 



경고 메시지 내용 중. symbols 앞에 일련번호는 UUID인데 해당 UUID를 찾는 방법은 아래와 같다

UUID 확인 방법
Organizer > Archives에서 해당 파일 우 클릭 Show in Finder >프로젝트 아카이브 파일우 클릭 > 패키지 내용 보기 > dSYMs
dSYMs 폴더로 들어가면 dSYM 파일들이 있다 
해당 파일들을 터미널에서 아래 명령어로 UUID를 확인할 수 있다.

dwarfdump -u filename.dSYM

dwarfdump --uuid *

 

 

 

 

경고를 유발하는 UUID를 찾았다면 해결법을 적용해보자 

 

이것은 라이브러리의 디버그 정보를 프로젝트 아카이브에서 포함하는데 바이너리는 포함하지 않을 경우 발생한다.
이 경고를 안 받으려면 아카이브 파일에 라이브러리 dSYM 파일을 포함하지 않게 하면 된다.



dSYM 파일을 포함하지 않게 하는 방법
Project Target > Build Settings > Debug Information Format 
DWARF with dSYM File -> DWARF Only

 

 

변경전

 

 

 

변경후

 

 

 

 

구글링 해보면 valid architectures 이슈라고 하는 글들도 있는데 이 경고랑 시퓨랑 뭔 상관인진 아직 모르겠다
하위 사양을 지금 쳐내는 분위기라 혹시 몰라서 arm64만 허용하게 설정해본다 




Valid Architectures 변경 방법
코코아팟 라이브러리를 사용한다면 해당 라이브러리 타깃까지 변경
Project Target > Build Settings > Valid Architectures
arm64, armv7 and armv7s. -> arm64

 

 

변경전

 

 

 

변경후

 

 

 

#xcode #warning #toomanysymbolfiles #uuid #dwarfdump

 

========