[Swift] 프레임워크 안에서는 브리징 헤더가 사용되지 않아요

zunu·2023년 2월 6일
0

프레임워크를 만들 일이 생겼다. 그런데 이제 Swift 프레임워크 안에 ObjC 코드가 들어가야 했다.

물론 처음부터 Swift 프레임워크가 아닌 ObjC 프레임워크로 만들면 됐을 일이지만 당연하지만 이렇게 해야만 하는 순간이 분명 있다.

영어로 검색하든 한글로 검색하든, swift 프로젝트 안에 ObjC를 사용하려면 브리징헤더를 사용하라고 한다.

근데 프레임워크에서는 브리징헤더가 사용 불가능하다고 한다.

그래서 아래와 같이 모듈맵이라는 녀석을 사용하게 되었다.

module 모듈 이름 {
    header "모듈의 헤더.h"
    link "모듈 이름"
    export *
}

이렇게 해주니 swift에서 모듈의 헤더에 존재하는 함수를 사용할 수 있게 되었다.

++ 빌드하여 프레임워크를 만들어 프로젝트에서 프레임워크를 넣으면 모듈을 찾을 수 없다고 하는데 프레임워크와 함께 모듈맵을 만들어 프레임워크 안에 있는 헤더파일을 지정해주면 사용이 가능하다.

이러한 모듈맵 지정이 별도로 필요 없이 바로 사용이 가능한 방법이 있을지 찾아봐야 한다.

profile
개발새발

0개의 댓글