본문 바로가기

프로그래밍/Swift

Swift에서 Framework 생성 및 사용

이전에 만든 클래스를 현재 진행 중인 프로젝트에서 사용하고 싶은 경우가 종종 있다. 이럴 때 해당 프로젝트에 원하는 클래스를 복사해서 사용할 수도 있지만, 매번 이렇게 복사는 것이 여간 귀찮은 일이 아니다. 

 

그래서 지난 포스팅(https://taeminator1.tistory.com/37)에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보고자 한다. 

 

지난 포스팅에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보자. 

먼저 Xcode를 실행하고 "Create a new Xcode project"를 눌러 프로젝트를 생성하자. 자신이 원하는 플랫폼을 선택하고(지금은 macOS를 선택했다), "Framework & Library"에서 "Framework"를 누르고 "Next" 버튼을 누른다. 

이름은 적당히 정해주고 프로젝트를 생성하면, .h 파일과 .plist 파일을 포함하는 프로젝트가 생성된다. 해당 프로젝트에서 Swift 파일을 추가하여 Framework로 만들고자 하는 코드를 입력해 준다. 나는 프로젝트명을 "DataStructure"로 하였고, 다음과 같이 지난 포스팅(https://taeminator1.tistory.com/37)에서 만든 파일을 추가해 주었다. 

지난번 작성한 코드와 달라진 점은, 다른 프로젝트에서 사용하기 위해 다음과 같이 접근 수준을 변경해 주었고, Node 인스턴스의 Data에 접근하기 위해 getData 메서드를 추가하였다는 것이다. 

이후 Build를 해주면, Framework 파일을 아래와 같이 "Show in Finder"를 통해서 확인할 수 있다. 

이제 만들어진 프레임워크를 원하는 프로젝트에서 사용해 보자. 테스트를 위한 프로젝트를 하나 생성한다. Application 타입을 "Command Line Tool"로 하고, 이름은 "FrameworkImportTest"라고 하였다. 그리고 다음과 같이 Group을 하나 생성시킨 뒤 이름을 "Framworks"라고 명명한다. (Group 생성은 필수가 아니지만, 다수의 Framework를 관리하기 위해 생성시켰다)

해당 Group에 아까 만들어준 .framework File을 옮겨 주자. 

그러면 다음과 같이 창이 뜨는데 "Destination"의 "Copy items if needed"를 체크한 뒤에 Finish 버튼을 눌러 준다. 

마지막으로 프로젝트 파일에서 Framework의 "Embed" 설정을 "Embed & Sign"으로 변경해주면 모든 준비가 끝난다. 

확인을 위해 다음과 같이  방금 옮긴 Framework를 import해주면 해당 Framework가 제공하는 클래스를 사용할 수 있다.