Xcode13之后先较,大多數(shù)分享出來的SDK真機(jī)和模擬器合并腳本已經(jīng)失效了悼粮,所以寫新的分享給大家
#!/bin/sh
# 取得build的target名(get project name)
FRAMEWORK_NAME=${PROJECT_NAME}
UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/Products"
UNIVERSAL_PRODUCT_PATH="${UNIVERSAL_OUTPUT_FOLDER}/${FRAMEWORK_NAME}.framework"
#創(chuàng)建輸出目錄扣猫,并刪除之前的framework文件
if [ ! -d "${UNIVERSAL_OUTPUT_FOLDER}" ];then
mkdir -p "${UNIVERSAL_OUTPUT_FOLDER}"
fi
if [ -d "${UNIVERSAL_PRODUCT_PATH}" ];then
rm -rf "${UNIVERSAL_PRODUCT_PATH}"
fi
# 設(shè)置真機(jī)和模擬器生成的靜態(tài)庫路徑 (set devcie framework and simulator framework path) ${TARGET_NAME}
DEVICE_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"
SIMULATOR_DIR="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"
#分別編譯模擬器和真機(jī)的Framework
xcodebuild -target "${FRAMEWORK_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
xcodebuild -target "${FRAMEWORK_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
#拷貝framework到univer目錄
cp -R "${DEVICE_DIR}" "${UNIVERSAL_OUTPUT_FOLDER}"
#移除 iphonesimulator 里的 arm64
lipo -remove arm64 "${SIMULATOR_DIR}/${FRAMEWORK_NAME}" -output "${SIMULATOR_DIR}/${FRAMEWORK_NAME}"
#合并framework申尤,輸出最終的framework到build目錄
lipo -create -output "${UNIVERSAL_OUTPUT_FOLDER}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}" "${DEVICE_DIR}/${FRAMEWORK_NAME}" "${SIMULATOR_DIR}/${FRAMEWORK_NAME}"
#判斷build文件夾是否存在,存在則刪除
if [ -d "${SRCROOT}/build" ]
then
rm -rf "${SRCROOT}/build"
fi
rm -rf "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator" "${BUILD_DIR}/${CONFIGURATION}-iphoneos"
#打開合并后的文件夾
open "${UNIVERSAL_OUTPUT_FOLDER}"