Simulator 와 Device 에서 동시에 적용가능한 library 만들기
Project -> Build Phases -> Add Build Phase -> Add Run Script
■ Run Script
if [find "${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphonesimulator/" -name "lib${PROJECT}.a"] AND \
["${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphoneos/" -name "lib${PROJECT}.a"]
then
lipo -create "${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphonesimulator/lib${PROJECT}.a" \
"${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphoneos/lib${PROJECT}.a" \
-output "${PROJECT_DIR}/../library/lib${PROJECT}.a"
else
cp "${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/lib${PROJECT}.a" \
"${PROJECT_DIR}/../library/lib${PROJECT}.a"
fi
* library 폴더는 자동생성되지 않음으로 수동으로 생성해주어야 한다.
간단히 설명하자면
library 가 빌드 된 후에
1. Simulator 용 .a (라이브러리) 파일 과 Device 용 .a 파일이 존재하면
lipo 를 이용해 두 파일을 합쳐서 현재 Project 폴더 상위에 library 폴더에 새 라이브러리를 생성하고
2. 둘 중 하나라도 존재하지 않는다면
지금 빌드된 Debug / Release -- Simulator / Device 타입에 따라 생성된 .a 파일을
현재 Project 폴더의 상위폴더의 library 폴더에 파일을 복사한다.