ios개발/xcode 빌드 시스템

<xcode 빌드 에러> cocoa Realm 빌드 에러 분석

studying develop 2020. 11. 4. 22:10

...app/Pods/Realm/include/core/__bit_reference:176:62: No member named '__libcpp_ctz' in namespace 'std::__1'; did you mean '__libcpp_wcsstr'? ...app/Pods/Realm/include/core/__bit_reference:1119:7: No template named '_If'

 

위와 같은 에러가 발생했다.

 

구글 검색어를 No member named '__libcpp_ctz' in namespace 이걸로 하면 검색 결과가 딱 한개 나왔는데,

 

[github.com/realm/realm-cocoa/issues/6664] 이거다.

 

 

 

읽어 보면 xcode 빌드 클린, pod update, pod install을 해봐도 안된다. 나도 다 해봤다.

 

xcode 버전 문젠가 해서 해봐도 아니다... 

 

맥을 재부팅해도 아니다...

 

 

에러를 해석해보면

 

오픈소스 라이브러리에 대한 이해가 부족해서 해결하지 못한건데, 결국 realm이 필요한 헤더 파일을 빌드 중에 못찾고 있다는거다.

 

두가지로 해석할수있다.

 

1. 연결이 안되서 못찾거나

2. 파일이 없거나...

 

근데 내가 cocoapod을 이용하면서 cocoa가 문제라고 생각하는게 맞는거 같은데, 내부적으로 세팅을 통해 해결해보려 너무 한것도 좀 문제같다.

 

"A diff between 5.3.2 and 5.3.1 shows the addition of the __bit_reference file in realm core that is causing the semantic issues."

 

위 링크에 중간에 답변을 보면, 답을 말하자면 5.3.1 버전에는 특정 파일이 없어서 5.3.2 버전에서 해결된거 같다....

 

사실 내가 맨 마지막 xcode12, 5.3.5에서도 해봤지만, 아직 내 프로젝트가 xcode12 빌드 지원은 안해서 안됐다. 

 

진작에 5.3.1에서 5.3.2로 조금만 바꿔볼걸 그랬다....


다시 생각해보니 release note를 잘 봤다면 왠지 있지 않았을까 싶기도 하다.

 

그래서 버전 비교를 할수있다는 사실을 깃헙에서 찾았다. [github.com/realm/realm-cocoa/compare/v5.3.1...v5.3.2]

 

[github.com/realm/realm-cocoa/releases/tag/v5.3.3] 이건 5.3.3에 대한 설명이다.

 

근데 보니까 미심쩍은 부분이

  • Add support for the x86_64 watchOS simulator added in Xcode 12.

딱 이렇게 써있네.... 혹시 의심되는 가설은 xcode11에서 시뮬레이터를 실행해도 xcode12 시뮬레이터로 실행되나??

 

시뮬레이터간에 무슨 관계가 있는지는 모르겠다.... 낼 다시 알아본다.

 

 

근데 음 왜  [github.com/realm/realm-cocoa/compare/v5.3.3...v5.3.2] 비교할 내용이 없다 하냐....

 

[github.com/realm/realm-cocoa/compare/v5.3.3...master] 이건 커밋 내용이다.


음 그리고 내가 xcode 11.7로 먼저했는데

 

여기 보니 원래 지원안한거 같긴하네...

 


근데 접혀있는 코드도 있어서 확실친 않은데, __bit_reference로 검색해도 하나도 안나오던데.... __bit_reference 파일이 없다가 왜 생긴거지?...