이번에는 Fat Static Library만드는 작업을 스크립트로 처리하여 자동화 처리하는 방법입니다.
Fat Static Library(이하 Fat 라이브러리) 빌드 자동화 스크립트 사용 방법
1. Xcode의 Build Phases에서 스크립트 추가
2. 아래 스크립트 내용을 붙여넣기 한다.
##############################################
#
# Fat static library
#
# Automatically create cross-platform (simulator + device)
# static libraries for Objective C / iPhone / iPad.
#
# added by netcanis 2018.10.26
#############################################
set -e
set -o pipefail
# Get BaseSdk version
SDK_VERSION=$(echo ${SDK_NAME} | grep -o '\d\{1,2\}\.\d\{1,2\}$')
# Get build type (Device or Simulator).
if [ ${PLATFORM_NAME} = "iphonesimulator" ]
then
OTHER_SDK_TO_BUILD=iphoneos${SDK_VERSION}
else
OTHER_SDK_TO_BUILD=iphonesimulator${SDK_VERSION}
fi
if [ "true" == ${ALREADYINVOKED:-false} ]
then
echo "RECURSION"
exit 0;
fi
# Building
export ALREADYINVOKED="true"
xcodebuild -configuration "${CONFIGURATION}" -project "${PROJECT_NAME}.xcodeproj" -target "${TARGET_NAME}" -sdk "${OTHER_SDK_TO_BUILD}" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" SYMROOT="${SYMROOT}"
ACTION="build"
CURRENTCONFIG_DEVICE_DIR=${SYMROOT}/${CONFIGURATION}-iphoneos
CURRENTCONFIG_SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator
CREATING_UNIVERSAL_DIR=${SYMROOT}/${CONFIGURATION}-universal
# Remove previous build floder.
rm -rf "${CREATING_UNIVERSAL_DIR}"
mkdir "${CREATING_UNIVERSAL_DIR}"
# Make universal static library.
xcrun -sdk iphoneos lipo -create -output "${CREATING_UNIVERSAL_DIR}/${EXECUTABLE_NAME}" "${CURRENTCONFIG_DEVICE_DIR}/${EXECUTABLE_NAME}" "${CURRENTCONFIG_SIMULATOR_DIR}/${EXECUTABLE_NAME}"
echo "Build complete!"
3. 빌드 설정을 ‘Release’로 설정한 후 빌드.
4. 빌드시 스크립트를 통해 디바이스와 시뮬레이터 빌드를 하며 ‘Release-universal’폴더에
두 빌드에 대한 Fat 라이브러리를 생성하여 준다.
5. ‘Release-universal’ 폴더에 생성된 Fat라이브러리 ‘libXXX.a’를 배포한다.
주의 : 빌드시 적용이 안될 경우 시뮬레이터 빌드를 한번 실행한 뒤 다시 시도해 봅니다.
2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (2/2)
2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (1/2)
2020/12/10 - [iOS/Tips] - Custom UserAgent 설정
2020/12/10 - [iOS/Tips] - CocoaPods 설치 및 제거
2020/12/10 - [iOS/Tips] - Clang diagnostic 경고 무시하기
2020/12/10 - [개발노트] - Bluetooth UUID
2020/12/08 - [개발노트] - 모바일 앱 메모리덤프 이슈 해결방법
2020/12/08 - [프로그래밍/Java Script] - Android, iOS 앱 설치여부 체크 및 스토어 이동
2020/08/21 - [Android/Tips] - aab파일 apk파일로 변환
2020/08/11 - [iOS/Swift] - WKWebView 화면 출력 완료 이벤트
2020/08/06 - [iOS/Tips] - 개발관련 폴더 경로
'개발 > iOS' 카테고리의 다른 글
UIViewController 스위칭 (0) | 2020.12.11 |
---|---|
웹뷰에서 javascript 함수 동기식 호출 (0) | 2020.12.10 |
Fat Static Library 빌드 (1/2) (1) | 2020.12.10 |
Custom UserAgent 설정 (0) | 2020.12.10 |
CocoaPods 설치 및 제거 (0) | 2020.12.10 |