xcode10不兼容问题解决方法,framework编译脚本

时间:2022-06-24 18:54:52

XCode10报错:Build/Intermediates.noindex/XCBuildData/build.db": disk I/O error

更改-scheme 为-target

 # 运行此脚本前

 # 先编译一遍工程  确保正常运行 没有报错

 # 作为Xcode Aggregate运行

 # file-->new target-->cross-platform-->Aggregate

 #!/bin/sh

 UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

 WORKSPACE_NAME=${PROJECT_NAME}.xcodeproj

 # make sure the output directory exists

 mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

 # Step . Build Device and Simulator versions

 echo 'Step 1. Build Device and Simulator versions'

 xcodebuild -project "${WORKSPACE_NAME}" -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphoneos ONLY_ACTIVE_ARCH=NO   BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

 xcodebuild -project "${WORKSPACE_NAME}" -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

 # Step . Copy the framework structure (from iphoneos build) to the universal folder

 cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/"

 # Step . Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory

 SIMULATOR_SWIFT_MODULES_DIR="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/."

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

 cp -R "${SIMULATOR_SWIFT_MODULES_DIR}" "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule"

 fi

 # Step . Create universal binary file using lipo and place the combined executable in the copied framework directory

 lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}"

 # Step . Convenience step to copy the framework to the project's directory

 cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"

 # Step . Convenience step to open the project's directory in Finder

 open "${PROJECT_DIR}"