(iOS 5.0 기준으로 제작했으므로 현재와 다를 수 있음)
iOS 에서 C, C++ 처럼 dll 비슷한 기능을 하는 라이브러리를 만들어 쓰는 방법.
Dynamic Library (동적) 와 Static Library (정적) 2가지가 있는데,
동적 라이브러리는 Apple 에서 사용을 막아 놨다.
정확히 말하자면 사용은 할 수 있지만 앱을 등록 할 때 리젝 사유가 된다고 함.
(이거 때문에 지금 쌩 고생 하고 있다…;;;)
그래서 Static Library 만들어 사용해야 한다.
1. 정적 라이브러리 만드는 방법
일단 Xcode 로 새로운 프로젝트를 생성 한다.
프로젝트의 템플릿은 Cocoa Touch Static Library 를 선택 한다.
기본적인 프로젝트 세팅을 한다.
프로젝트가 완성 되면 다음과 같이 폴더가 구성 되는데, 자신이 라이브러리로 만들고 싶은대로
폴더 구성을 한다. (필요한 기능을 넣는다.)
Target Setting -> Build Phases 에 가면 밑에 화면이 나오는데
iOS 에서는 라이브러리 파일 외에 헤더 파일을 추가해 주어야 하므로
빌드 할때 해당 헤더 파일을 만들고 싶다면 Copy Headers 에 추가 해 주면 된다.
빌드를 완료 하면 Build 폴더에 다음과 같은 정적 라이브러리 파일이 생기고
헤더를 추가 했다면 따로 헤더 파일도 추출 된다.
추 프로젝트의 Edit Scheme 에 들어가면 아래 화면이 나오는데
타겟들의 Build Configuration 을 Debug 로 하면 시뮬레이터용, Release 로 하면 디바이스 용이다.
2. 정적 라이브러리 사용 방법
TIP
라이브러리를 추가하고 제거 하고 하다보면 Undefined symbol 어쩌구 하면서 i386, armv6, armv7 에러가 날 때가 있는데 일단은 라이브러리가 시뮬레이터 용인지 디바이스 용인지 잘 맞춰 준다.
그래도 실행이 안되면 프로젝트에 아무 내용없는 cpp 파일을 만들어 컴파일 하면 된다.
그리고 정적 라이브러리를 만들었을 때 잘 만들어 졌는지, 또는 라이브러리의 내용을 확인 하고 싶다면, 터미널에서 라이브러리 파일이 있는 곳으로 가서
nm lib라이브러리이름.a
해주면 라이브러리의 내용을 확인 할 수 있다.
'Programming > iOS' 카테고리의 다른 글
[iOS] UserDefault 사용하는 방법 (0) | 2015.03.27 |
---|---|
[iOS] 언어별로 앱 이름 변경 하는 방법 (0) | 2015.03.27 |
[iOS] Directory not found for option ‘l’ 에러 (0) | 2015.03.27 |
[iOS] The Service is Invalid 에러 (0) | 2015.03.27 |
[iOS] respondsToSelector, performSelector 차이 (0) | 2015.03.27 |