iOS 에서 사용될 라이브러리를 만들때,
Simulator 와 Device Arch Type이 달라서, 2가지 library 파일을 생성해야한다.
최근에 어떤 프로젝트 소스 코드를 본적이 있는데,
libxxxx-iphoneos.a libxxx-iphonesimulator.a 를 생성해두고,
Other Linker Flag 에서 -lxxx-$(EFFECTIVE_PLATFORM_NAME) 이런식으로
Platform 에 dependency하게 명명해두고, 사용하는것을 봤다.
예전에, universal 한 static library 를 본적이 있는것 같아서, 언제나 처러 search 고고싱 ~!
lipo 라는 cli tool로 이런 multi arch type library를 merge 할 수 있는데,
커맨드는 아래와 같다.
$ lipo -create -output myLib.a myLib-arm6.a myLib-arm7.a myLib-i386.a
정상적으로 생성되었는지 확인하려면 'file'이라는 cli command로 확인가능하다.
$ file myLib.a myLib.a: Mach-O universal binary with 3 architectures
myLib.a (for architecture armv6): current ar archive random library
myLib.a (for architecture armv7): current ar archive random library
myLib.a (for architecture i386): current ar archive random library
자 이제 쓸데 없이 거추장 스러웠던 환경변수는 집어 던지고
하나의 library를 그냥 링크하면된다