build.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/sh
  2. #要build的target名
  3. TARGET_NAME=${PROJECT_NAME}
  4. if [[ $1 ]]
  5. then
  6. TARGET_NAME=$1
  7. fi
  8. UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/${PROJECT_NAME}_Products/"
  9. #创建输出目录,并删除之前的framework文件
  10. mkdir -p "${UNIVERSAL_OUTPUT_FOLDER}"
  11. rm -rf "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"
  12. #分别编译模拟器和真机的Framework
  13. xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
  14. xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
  15. #拷贝framework到univer目录
  16. cp -R "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework" "${UNIVERSAL_OUTPUT_FOLDER}"
  17. #合并framework,输出最终的framework到build目录
  18. lipo -create -output "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"
  19. #删除编译之后生成的无关的配置文件
  20. dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/"
  21. for file in ls $dir_path
  22. do
  23. if [[ ${file} =~ ".xcconfig" ]]
  24. then
  25. rm -f "${dir_path}/${file}"
  26. fi
  27. done
  28. #判断build文件夹是否存在,存在则删除
  29. if [ -d "${SRCROOT}/build" ]
  30. then
  31. rm -rf "${SRCROOT}/build"
  32. fi
  33. rm -rf "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator" "${BUILD_DIR}/${CONFIGURATION}-iphoneos"
  34. #打开合并后的文件夹
  35. open "${UNIVERSAL_OUTPUT_FOLDER}"