Search

프레임워크를 추가했는데, “No such Module”이 발생하는 문제를 해결해보자

 문제 상황

Resource를 관리하는 MTResource라는 프레임워크를 생성해서 기존 프로젝트에 프레임워크로 추가해준 상태였습니다.
그리고 나서, 해당 프레임워크를 import 했는데 문제가 발생했습니다.
평소에는 괜찮다가 빌드만 하면 에러가 발생했습니다. 분명, 프레임워크를 추가해줬는데 없는 모듈이라네요..🫤

 문제 해결

같은 문제가 발생한 Getting error "No such module" using Xcode, but the framework is there 라는 질문 글을 찾았습니다. 답변해준 방식을 따라서 문제를 해결해보았습니다.

⓵ Opening xcodeproj instead of xcworkspace will cause an error

해당 문제가 나타나는 주된 이유는 xcworkspace 대신에 xcodeproj 파일을 열어서 그런거라는데, 저희 프로젝트는 SPM으로만 라이브러리를 가져오기 때문에 그럴 일이 없어서 이 방법은 일단 패스했습니다.
Cocoapod를 사용하신다면 이 문제가 아닐까 확인해보시면 좋을 것 같네요.

⓶ Defining the Framework Search Paths to a folder

build settings에 있는 Framework Search Path에서 search path$(SRCROOT)로 설정해보라는 답변이었습니다.
프로젝트 타겟 build setting 부분에서 Framework Search Path를 수정해보았습니다.
하지만, 동일한 에러가 계속 발생했습니다.

⓷ Configuration naming don't match exactly

세번째 방법은 Build Configuration의 이름이 다르기 때문에 발생한다는 얘기였습니다.
기존 프로젝트에서는 Dev, Prod로 사용하고 있었고, 새로 만든 프로젝트는 Configuration 네이밍을 바꾸지 않았습니다. 문제를 해결하기 위해서 바로 이름을 수정해보았습니다.
빌드를 해보니깐 빌드 성공이 떴습니다. (ง˙∇˙)ว
혹시, 기존 프로젝트와 다른 프레임워크를 import 해서 사용하신다면 기존 프로젝트와 동일한 iOS Deployment Target을 사용하는지도 확인해주세요. 기존 프로젝트가 “상위” 프로젝트이다보니 Deployment Target이 더 높으면 문제가 생깁니다.

 참고 자료