하루를살자

[iOS] Static Library 사용하는방법 본문

iOS

[iOS] Static Library 사용하는방법

Kai1996 2022. 12. 23. 21:48

목적: 저번글에서 어떻게 Static Library를 만드는지 알아보았는데, 오늘은 어떻게 생성된 바이너리 파일 (. a 확장자 파일)을 프로젝트에 사용할 수 있는지 알아보도록 하겠습니다. 

 

- 1.0 만들어진 라이브러리를 사용할 프로젝트를 하나 생성해줍니다. (저는 이전에 만든 라이브러리가 iOS 용이라서 iOS 프로젝트를 만들었습니다). 


- 2.0 Target -> Build Phases -> Link Binary With Libraries에 생성된. a 파일을 선택해줍니다. 이때 iphoneos, simulator 버전의. a 파일이 있으시겠지만, 일단 simulator 버전의 바이너리 파일을 링크해 줍시다. 아래와 같이 된다면 성공적으로 된 것! 

- 3.0 Target -> Build Settings -> Search Path -> Library Search Path 에 바이너리 파일의 위치를 기입해 줍니다. 

 

- 4.0 실행할 Simulator 를 선택한 뒤 빌드를 하면 성공적으로 빌드가 되는 것을 볼 수 있으실 겁니다. 하지만 실제 기기를 연결해서 빌드를 하면 아래와 같은 에러가 발생하는 것을 볼 수 있습니다. 

- 이 에러는 사용한 Library 가 iOS Simulator 용 이였기 때문인데요, iPhone, Simulator 용의 바이너리 파일이 호환하는 아키텍처가 다르기 때문에 simulator 용 바이너리 파일을 link 하면, 실제 기기에서 빌드를 못하고, 반대로 iphone 용 바이너리파일을 link 할시 실제 기기를 연결했을 때 link 과정에서 아키텍처 관련 빌드 에러가 발생하게 되는 것입니다. 

 

당연히 이런문제를 해결할 방법은 있습니다.  바이너리 파일을 합쳐 여러 아키텍처가 포함된 Fat file 을 생성하거나, Apple에서 지원하는 XCFrameWork를 만들어서 링크를 해주면 됩니다. 이 해결방법들은 다음 포스트에서 계속하도록 하겠습니다. 

 

Comments