美文网首页
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