Framework打包脚本

#打包脚本 ``` # 确保xcodebuild路径正确,如果报下边错误 # ``` # xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance # ``` # 将路径切换到Xcode的目录下 # ``` # sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ # ``` # 程序根目录 SRCROOT=$(cd "$(dirname "$0")";pwd) # default is Debug if [ -n "$1" ]; then CONFIGURATION='Release' else CONFIGURATION='Debug' fi echo "------------------\n当前编译版本为: $CONFIGURATION" TARGET_NAME="project name" OUTPUT_FOLDER="${SRCROOT}/output/${CONFIGURATION}" BUILD_DIR_Iphoneos="${SRCROOT}/buildIphones" BUILD_DIR_IphoneSimulator="${SRCROOT}/buildIphonesimulator" mkdir -p ${OUTPUT_FOLDER} echo "------------------\n:开始构建真机..." xcodebuild -target ${TARGET_NAME} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO -sdk iphoneos BUILD_DIR=${BUILD_DIR_Iphoneos} clean build echo "------------------\n:开始构建模拟器..." xcodebuild -target ${TARGET_NAME} -configuration ${CONFIGURATION} ONLY_ACTIVE_ARCH=NO -sdk iphonesimulator VALID_ARCHS="x86_64" BUILD_DIR=${BUILD_DIR_IphoneSimulator} clean build cp -R "$BUILD_DIR_Iphoneos/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework" "${OUTPUT_FOLDER}/" echo "$BUILD_DIR_Iphoneos/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework" echo "------------------\n开始合并Framework..." lipo -create "$BUILD_DIR_IphoneSimulator/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" "$BUILD_DIR_Iphoneos/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}" -output "$OUTPUT_FOLDER/${TARGET_NAME}.framework/${TARGET_NAME}" echo "------------------\n移除多余文件..." rm -r $BUILD_DIR_Iphoneos rm -r $BUILD_DIR_IphoneSimulator echo "------------------ \nframework 输出地址: $OUTPUT_FOLDER/${TARGET_NAME}.framework \n" ``` --- 上面是一个shell脚本,大家执行 `sh ***.sh` 就可以了. 在写脚本的时候遇到一个问题,早期我们打包都是在xcode里面配置一个`Target`在`run script`里添加类似的脚本,这里我发现由Xcode调用的shell脚本可以拿到很多参数比如: ``` BUILD_DIR="" BUILD_ROOT="" CONFIGURATION="" ``` 而我们自己写的脚本这些参数是要自己去配置的,所以我看了一下Xcode是什么时候把值内置到shell脚本的执行环境中,并且这些参数的默认值又是什么 我找到 ![image.png](https://upload-images.jianshu.io/upload_images/1249329-555c6db8cec10edd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 找到这里就很清楚了,xcode在执行自定义shell脚本之前已经将所有参数进行了`export` 知道了这些参数和默认值,就可以帮助我们在写自定义shell打包脚本的时候有些参数的使用和默认值有一些参考

你可能感兴趣的:(Framework打包脚本)