#!/bin/sh
#要build的target名
TARGET_NAME=${PROJECT_NAME}
COMPILE_IPHONE="[真机包存放的临时目录]"
COMPILE_SIMILAR="[模拟器包存放的临时目录]"
if [[ $1 ]]
then
TARGET_NAME=$1
fi
UNIVERSAL_OUTPUT_FOLDER="[最终合并包存放的目录]"
#UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/${PROJECT_NAME}_Products/"
#创建输出目录,并删除之前的framework文件
mkdir -p "${UNIVERSAL_OUTPUT_FOLDER}"
rm -rf "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"
#分别编译模拟器和真机的Framework
xcodebuild -workspace *.xcwork* -scheme ${TARGET_NAME} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO CONFIGURATION_BUILD_DIR=${COMPILE_SIMILAR} -UseModernBuildSystem=NO -sdk iphonesimulator clean build
xcodebuild -workspace *.xcwork* -scheme ${TARGET_NAME} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO CONFIGURATION_BUILD_DIR=${COMPILE_IPHONE} -UseModernBuildSystem=NO -sdk iphoneos clean build
#拷贝framework到univer目录
cp -R "${COMPILE_IPHONE}/${TARGET_NAME}.framework" "${UNIVERSAL_OUTPUT_FOLDER}"
#合并framework,输出最终的framework到build目录
lipo -create -output "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}" "${COMPILE_IPHONE}/${TARGET_NAME}.framework/${TARGET_NAME}" "${COMPILE_SIMILAR}/${TARGET_NAME}.framework/${TARGET_NAME}"
#删除编译之后生成的无关的配置文件
dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/"
for file in ls $dir_path
do
if [[ ${file} =~ ".xcconfig" ]]
then
rm -f "${dir_path}/${file}"
fi
done
#判断build文件夹是否存在,存在则删除
if [ -d "${SRCROOT}/build" ]
then
rm -rf "${SRCROOT}/build"
fi
rm -rf "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator" "${BUILD_DIR}/${CONFIGURATION}-iphoneos"
rm -rf "${COMPILE_IPHONE}" "${COMPILE_SIMILAR}"
#打开合并后的文件夹
open "${UNIVERSAL_OUTPUT_FOLDER}"