美文网首页
Framework打包脚本

Framework打包脚本

作者: 来自蒙塔基的钢蛋儿 | 来源:发表于2019-08-08 14:24 被阅读0次

打包脚本

# 确保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里面配置一个Targetrun script里添加类似的脚本,这里我发现由Xcode调用的shell脚本可以拿到很多参数比如:

 BUILD_DIR=""
 BUILD_ROOT=""
 CONFIGURATION=""

而我们自己写的脚本这些参数是要自己去配置的,所以我看了一下Xcode是什么时候把值内置到shell脚本的执行环境中,并且这些参数的默认值又是什么
我找到

image.png
找到这里就很清楚了,xcode在执行自定义shell脚本之前已经将所有参数进行了export
知道了这些参数和默认值,就可以帮助我们在写自定义shell打包脚本的时候有些参数的使用和默认值有一些参考

相关文章

网友评论

      本文标题:Framework打包脚本

      本文链接:https://www.haomeiwen.com/subject/sqrxjctx.html