제품의 .dSYM DWARF 파일에서 제외 할 기호가있는 하위 프로젝트가 포함 된 iOS 프로젝트를 작성하고 있습니다.dSYM에서 특정 기호 제외
상황에 따라 하위 프로젝트 (정적 라이브러리)에는 침입자가 전체 앱에 대한 재 충돌 보고서에 dSYM 파일을 사용 했음에도 불구하고 기호화 할 수없는 가치있는 독점 코드가 포함되어 있습니다 . 하위 프로젝트는 매우 특정한 영역을 다루며 독립적으로 잘 테스트되기 때문에 그 코드에서 스택 트레이스를 다시 심벌 링 할 수 없다는 걱정은하지 않습니다. 그러나, 나는 나머지 애플 리케이션을 위해 충돌 보고서를 다시 심벌 링 할 수 있어야한다. 그래서 나는 dSYM이 필요하다. (앱으로 심볼을 배포하는 것은 옵션이 아니다.)
관련 심볼이 모두 바이너리에서 제거되었는지 확인하고 GCC_GENERATE_DEBUGGING_SYMBOLS = NO를 dSYM에서 많이 삭제 했는데도 여전히 클래스 개인용 C++ 메소드 이름을 볼 수 있습니다. dSYM 파일. 참고로, 나는 clang을 사용하고 있습니다.
이 하위 프로젝트의 상징을 손상시키지 않으면 서 어떻게 내 앱용 dSYM을 만들 수 있습니까?
전체 프로젝트의 하위 프로젝트의 정적 라이브러리에서 디버그 기호가 dSYM으로 전파되는 방식은 무엇입니까? 마치 디버그 심볼이없는 제 3 자 라이브러리 인 것처럼 정적 라이브러리에 링크하여 수행 할 수있는 것처럼 보이지만 실제로 흐름을 올바르게 이해하지 못하는 것 같습니다. – MxSagan
디버그 정보는 .o 파일에 있습니다. 정적 라이브러리 ("ranlib 라이브러리")는 .o 파일 모음입니다. 기본 응용 프로그램은 .o 파일에 포인터 (파일 이름)를 가지고 있습니다. 앱에서 dsymutil을 실행하면 해당 파일 이름을 따라 모든 디버그 정보를 가져 와서 dSYM 번들로 수집합니다. –