Framework支持x86_64 i386 arm7 arm64

452 阅读1分钟

这是一个shell脚本解决自制framework在模拟器活着真机下可能不支持的问题

if["${ACTION}"="build"];then

#INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

TEMP=${BUILD_ROOT}/TEMP

ARM=$TEMP/ARM

I386=$TEMP/I386

X86=$TEMP/X86

if[ ! -a ${BUILD_ROOT}/Document ];then

touch ${BUILD_ROOT}/Document

fi

if[ ! -d $TEMP ];then

mkdir -p"${TEMP}"

mkdir -p"${ARM}"

mkdir -p"${I386}"

mkdir -p"${X86}"

fi

if[ -d $DEVICE_DIR ];then

cp -R $DEVICE_DIR/${PROJECT_NAME} $ARM

if[ ! -f ${BUILD_ROOT}/arm ];then

touch ${BUILD_ROOT}/arm

fi

cp -R ${BUILD_ROOT}/${CONFIGURATION}-iphoneos/ $TEMP

else

if[ -f ${BUILD_ROOT}/arm ];then

rm ${BUILD_ROOT}/arm

fi

fi

if[ -d"${SIMULATOR_DIR}"];then

lipo -info $SIMULATOR_DIR/${PROJECT_NAME} > ${BUILD_ROOT}/Document

grep"is architecture: i386"${BUILD_ROOT}/Document

if[ $? -eq0];then

cp -R $SIMULATOR_DIR/${PROJECT_NAME} $I386

if[ ! -f ${BUILD_ROOT}/i386 ];then

touch ${BUILD_ROOT}/i386

fi

fi

grep"is architecture: x86_64"${BUILD_ROOT}/Document

if[ $? -eq0];then

cp -R $SIMULATOR_DIR/${PROJECT_NAME} $X86

if[ ! -f ${BUILD_ROOT}/x86 ];then

touch ${BUILD_ROOT}/x86

fi

fi

else

if[ -f ${BUILD_ROOT}/i386 ];then

rm ${BUILD_ROOT}/i386

fi

if[ -f ${BUILD_ROOT}/x86 ];then

rm ${BUILD_ROOT}/x86

fi

fi

if[ -f ${BUILD_ROOT}/arm ] && [ -f ${BUILD_ROOT}/i386 ] && [ -f ${BUILD_ROOT}/x86 ];then

lipo -create $ARM/${PROJECT_NAME} $I386/${PROJECT_NAME} $X86/${PROJECT_NAME} -output $TEMP/${PROJECT_NAME}.framework/${PROJECT_NAME}

open $TEMP

fi

fi