티스토리 뷰


(본 글은 아래의 이슈를 참고하여 작성된 글입니다)
https://github.com/google/google-api-objectivec-client-for-rest/issues/478

 

Cannot debug in lldb · Issue #478 · google/google-api-objectivec-client-for-rest

After upgrading to any version higher than 1.3.11, we are unable to use lldb in Xcode to debug. Unlike #388, we do not see any errors in the console. An example of the failures we get in lldb is sh...

github.com

 

개인 프로젝트를 진행하면서 GoogleAPIClientForREST 라이브러리를 추가한 뒤부터 Xcode의 디버거가 동작하지 않는 문제가 발생했습니다. 중간에 브레이크를 걸고 'po 객체'를 하면 아래 사진과 같이 해당 객체를 찾을 수 없다며 디버거가 동작하지 않습니다(한동안 원인도 모르고 끙끙 앓면서 print로 디버깅을 했음... ㅠㅠ).

출처: https://github.com/google/google-api-objectivec-client-for-rest/issues/478

원인은 패키지 매니저를 SPM과 CocoaPods를 혼용해서 썼기 때문이었습니다. GoogleAPIClientForREST 라이브러리는 Objective-C로 작성되었고 헤더파일을 불러오는 코드들이 있는데, 프로젝트가 SPM을 사용하는 경우 Xcode에서 정의된 'SWIFT_PACKAGE' 플래그 때문에 파일들이 꼬이게 되는 게 원인이었습니다. 해당 부분은 아래와 같습니다.

#if SWIFT_PACKAGE || GTLR_USE_MODULAR_IMPORT
   @import GoogleAPIClientForRESTCore;

제 프로젝트는 SPM과 CocoaPods를 같이 쓰고 있어서 SWIFT_PACKAGE가 true가 되어 위와 같은 문제가 발생했습니다(SPM을 사용해서 패키지를 하나라도 설치하면 SWIFT_PACKAGE가 true가 됨).

 

그래서 'SPM과 CocoaPods를 같이 쓰면서 GoogleAPIClientForREST를 사용'하면서 디버거를 못 찾는 에러, 혹은 다른 에러가 발생한다면 위의 방법을 한 번 시도해보시길 바랍니다. 혹은 podfile에 '~> 1.3.11'로 작성하여 설치하는 것도 임시 방편이 될 수 있습니다.


 

+ 커밋에 github 이슈의 링크를 남기면 해당 커밋이 이슈트래커에 뜨더라고요? 혼자 연습하는 프로젝트 커밋이 이슈트래커에 잡히니 부끄러웠습니다..

댓글