iyOmSd/Title: Swift

[Swift] Xcode16 빌드시 CUICatalog initWithName:fromBundle:error: 런타임 에러

냄수 2024. 11. 7. 22:28
반응형

안녕하세요

오늘은 간단한 에러처럼 보이지만 디버깅하기 힘든 에러를 접한 경험을 공유하려합니다!

Xcode16이 나와서 swift6을 대응하려다가 만난에러입니다!

 

Xcode15를 사용했을때 문제없이 빌드됬고 시뮬레이터, 실기기 모두 정상동작하는 상태에서 

Xcode16을 다운받고 빌드했을 때 

iOS16, iOS18인 기기에서는 문제없이 잘 동작했으나 iOS17인 경우에 런타임에서 죽는 현상을 발견했습니다.

 

원인도 모르겠고 정말 막막해서 엄청 알아보던 와중 드디어 한줄기의 빛처럼 발견한 글이 있었습니다.

정확한 원인과 답은 찾지못했지만 

모듈이름과 뭔가 연관있다라는 추측을 내포하는 글을 발견했습니다.

 

제 경우도 이에 해당할지도 모른다는 희망을 갖고 모듈이름을 바꾸고 적용한뒤에 실행했습니다.

저는 "UI" 모듈을 사용하고있엇고 

이글을보고 "CoreUI"모듈로 변경하여 다시 빌드를 했습니다.

 

Thread 1: "-[CUICatalog initWithName:fromBundle:error:]: unrecognized selector sent to instance 0x600002612580"

에러내용은 달라졌지만 이번에도 원인을 알 수 없는 경우였습니다.

시뮬빌드시에 런타임 에러가 나고 실기기에서는 정상 동작했습니다.

 

검색해도 나오지않는 문제라.. swift6대응 하다가 뭔가를 잘못 건드렸나 다시 돌아보기도하고

모듈 구조를 수정해보기도하면서 삽질하던중 

정말 포기하기직전 마지막으로 모듈이름이 또 잘못됫나싶어서

다시 "UIComponent"모듈로 이름을 변경하고 적용했습니다.

 

시뮬과 실기기 모두 정상동작하는것을 확인했고 

시뮬을 못쓰고 실기기로만 테스트할 생각에 아찔했는데 너무 다행이였습니다. 

 

Xcode16으로 넘어오면서 내부 SDK에 뭔가 모듈이름이 변경되서 중복되는 부분이 생긴것 같다는

추측만 남긴체...

네이밍의 중요성을 다시한번 깨달았습니다.

 

이런 에러를 마주한다면 네이밍한번 체크해보시면 도움이 될것같아요

 

 

https://forums.developer.apple.com/forums/thread/757397

반응형