iOS自动化打包脚本2sdk

103 阅读1分钟

#!/bin/sh

#有时候打包失败,需要删除bundle,具体路径见日志

    

rm -rf '/Users/admin/prd/slavec2/run_slave/works/core_pipeline_id_509284/core_job_id_4162840/ZNSLSDK/ZNSLSDK/build/ZNSLBundle.bundle'

  

#workspace 工程名,如果是单 target 项目则不需要

PROJECT_NAME='ZNSLProject'

#target 名

TARGET_NAME="ZNSLProject"

#工程文件所在的根目录

SRCROOT=pwd

#Sets the target folders and the final framework product.

FMK_NAME='ZNSLSDK'

#最终 sdk 输出的文件路径

#在工程文件所在的根目录创建 sdk 输出路径,如果是 framework 形式则为 .framework

INSTALL_DIR=SRCROOT/Products/SRCROOT/Products/{FMK_NAME}.framework

#在工程文件所在的根目录创建 sdk 输出路径,如果是 static lib 形式则为 .a

#INSTALL_DIR=SRCROOT/Products/{SRCROOT}/Products/{FMK_NAME}.a

#指定输出导出文件夹路径

export_path="$SRCROOT/export"

#sdk 编译过程的输出文件路径

WRK_DIR=./builds

#framework 形式真机架构输出文件路径

DEVICE_DIR=WRKDIR/Releaseiphoneos/{WRK_DIR}/Release-iphoneos/{FMK_NAME}/${FMK_NAME}.framework

#static lib 形式真机架构输出文件路径

#DEVICE_DIR=WRKDIR/Releaseiphoneos/{WRK_DIR}/Release-iphoneos/{FMK_NAME}.a

#framework 形式模拟器架构输出文件路径

SIMULATOR_DIR=WRKDIR/Releaseiphonesimulator/{WRK_DIR}/Release-iphonesimulator/{FMK_NAME}/${FMK_NAME}.framework

#static lib 形式模拟器架构输出文件路径

#SIMULATOR_DIR=WRKDIR/Releaseiphonesimulator/{WRK_DIR}/Release-iphonesimulator/{FMK_NAME}.a

#-configuration ${CONFIGURATION}

#清理编译生成真机和模拟器架构的 sdk

#单 target 项目

#xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build

#xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build

#包含 workspace 的项目

xcodebuild -configuration Release -workspace "PROJECTNAME.xcworkspace"scheme"{PROJECT_NAME}.xcworkspace" -scheme "{TARGET_NAME}" -sdk iphoneos clean  build SYMROOT="../${WRK_DIR}"

#xcodebuild -configuration Release -workspace "PROJECTNAME.xcworkspace"scheme"{PROJECT_NAME}.xcworkspace" -scheme "{TARGET_NAME}" -sdk iphonesimulator build SYMROOT="../${WRK_DIR}"

#清理之前生成的 sdk

SDK_DIR=$SRCROOT/Products/*.framework

if [ -d "${SDK_DIR}" ]

echo "SDK_DIR有文件"

then

echo "删除SDK_DIR里的文件"

rm -rf "${SDK_DIR}"

fi

rm -rf "exportpath/{export_path}/{FMK_NAME}-Debug.zip"

rm -rf "exportpath/{export_path}/{FMK_NAME}-Release.zip"

rm -rf "exportpath/{export_path}/{FMK_NAME}-Gray.zip"

echo "创建打包过程输出文件output目录 "$export_path

mkdir -p $export_path

echo "开始前:ls -alth $export_path:"

ls -alth $export_path

mkdir -p ${SRCROOT}/Products

#Uses the Lipo Tool to merge both binary files (i386/x86_64 + armv7/armv64) into one Universal final product.

#lipo -create "DEVICEDIR/{DEVICE_DIR}/{FMK_NAME}" "SIMULATORDIR/{SIMULATOR_DIR}/{FMK_NAME}" -output "INSTALLDIR/{INSTALL_DIR}/{FMK_NAME}"

cd ${WRK_DIR}/Release-iphoneos

   

zip -r FMKNAMEiphoneos.zip{FMK_NAME}-iphoneos.zip {FMK_NAME}.framework

#    cp -rf FMKNAMEiphoneos.zip{FMK_NAME}-iphoneos.zip {export_path}

mv FMKNAMEiphoneos.zip{FMK_NAME}-iphoneos.zip export_path

      

env_name=""

#根据打包环境,设置不同的包名

if [ ${ENV_TYPE} -eq 0 ]; then

env_name="Debug"

echo "当前是Debug环境"

fi

if [ ${ENV_TYPE} -eq 1 ]; then

env_name="Release"

echo "当前是Release环境"

fi

if [ ${ENV_TYPE} -eq 2 ]; then

env_name="Gray"

echo "当前是Gray环境"

fi

mv exportpath/export_path/{FMK_NAME}-iphoneos.zip exportpath/export_path/{FMK_NAME}-$env_name.zip

exit 0