iOS Framework 打包脚本

首先附上通用一键打包脚本使用链接以及说明, 无需修改即可使用:

https://github.com/starLover/build_script.git

下面开始介绍简单的打包脚本教程

1. 创建打包脚本文件

在项目包含.xcworkspace文件的目录下,新建文本文件(即txt文件), 粘贴以下代码,替换代码中第四行的“这里填写项目名称”为自己项目Framework的名称, 并将该文本文件保存为后缀名为.sh的文件。如文本文件名字为build_framework.txt, 保存为build_framework.sh

#当前项目所在路径
current_path=`pwd`

#项目
project_name='这里填写项目名称,如:MyProject'
#
workspace_name=$project_name

target_name=$project_name

framework_config=Release

#framework输出路径
FRAMEWORK_TARGET_DIR=$current_path/${workspace_name}"Framework"

#临时文件夹路径
BUILD_DIR_TMP=$current_path/'FrameworkTmp'

echo "当前项目所在路径:$current_path"
echo "临时文件夹:$BUILD_DIR_TMP"
echo "framework输出路径:${FRAMEWORK_TARGET_DIR}"

archiveWorkSpace(){
#build之前清理文件
xcodebuild clean -workspace ${workspace_name}.xcworkspace -scheme ${target_name}
#模拟器build
xcodebuild build -workspace ${workspace_name}.xcworkspace -scheme ${target_name} -configuration framework_config -sdk iphonesimulator SYMROOT=${BUILD_DIR_TMP}
#真机build
xcodebuild build -workspace ${workspace_name}.xcworkspace -scheme ${target_name} -configuration framework_config -sdk iphoneos SYMROOT=${BUILD_DIR_TMP}
#OBJROOT=${BUILD_DIR_TMP} SYMROOT=${BUILD_DIR_TMP}

#将模拟器中的framework复制出来
cp -R ${BUILD_DIR_TMP}/${framework_config}-iphonesimulator/${workspace_name}.framework ${FRAMEWORK_TARGET_DIR}

#从模拟器中移除arm64架构
lipo ${BUILD_DIR_TMP}/${framework_config}-iphonesimulator/${workspace_name}.framework/${workspace_name} -remove arm64 -output ${BUILD_DIR_TMP}/${framework_config}-iphonesimulator/${workspace_name}.framework/${workspace_name}
#合并真机和模拟器文件并输出到构建的framework中
lipo -create ${BUILD_DIR_TMP}/${framework_config}-iphonesimulator/${workspace_name}.framework/${workspace_name} ${BUILD_DIR_TMP}/${framework_config}-iphoneos/${workspace_name}.framework/${workspace_name} -output ${FRAMEWORK_TARGET_DIR}/${workspace_name}.framework/${workspace_name}

#删除无用的三方bundle
find ${FRAMEWORK_TARGET_DIR}/${workspace_name}.framework -maxdepth 1 -name '*.bundle' -not -name "${workspace_name}*.bundle" | xargs rm -rf
#自动打开文件夹
open $FRAMEWORK_TARGET_DIR
}

makeFramework(){
#判断临时文件夹是否存在,存在的话先删除
if [ -d $BUILD_DIR_TMP ];then
rm -rf $BUILD_DIR_TMP
fi
# 判断输出文件夹是否存在,存在的话先删除
if [ -d ${FRAMEWORK_TARGET_DIR} ];then
rm -rf ${FRAMEWORK_TARGET_DIR}
fi

#创建临时文件夹
mkdir -p ${BUILD_DIR_TMP}
#创建输出文件夹
mkdir -p ${FRAMEWORK_TARGET_DIR}

archiveWorkSpace

rm -rf $BUILD_DIR_TMP
}

makeFramework

2. 运行打包脚本文件

下面以文件名为build_framework.sh举例,你可以替换为自己脚本文件的命名来进行测试

#这个方法执行一次即可,使脚本具有执行权限
chomd +x ./build_framework.sh
#执行过上面的命令后,每次打包时只需要执行下面这行即可
./build_framework.sh  

总结

以上就是比较简单的Framework打包脚本的使用,感兴趣的朋友可以自己动手尝试下, 相信会受益匪浅。

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