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를 그냥 링크하면된다 

+ Recent posts