# configuration
configuration=$1
# ipa名字
ipa_name=$2
# 设置版本号
version=$3
# 设置scheme名称
scheme_name="XXXXXX_${configuration}"
# 获取当前日期年月日时分秒
current_date=$(date "+%Y-%m-%d %H-%M-%S")
# 设置项目路径和名称
project_path="XXXXX"
project_name="XXXXX"
# 设置workspace路径和名称
workspace_path="XXXXX"
workspace_name="XXXXX"
# ExportOptions.plist的路径
plist_path="XXXXX"
# 导出包的路径
export_path="XXXXX/${configuration}/${scheme_name} ${current_date}"
# clean
function clean_project() {
xcodebuild clean -workspace "$workspace_path/$workspace_name.xcworkspace" -scheme "$scheme_name" -configuration $configuration
}
# archive
function build_project() {
xcodebuild archive -workspace "$workspace_path/$workspace_name.xcworkspace" -scheme "$scheme_name" -archivePath "$export_path/${scheme_name}.xcarchive" -destination "generic/platform=iOS" -sdk iphoneos -configuration $configuration -quiet
}
# 修改版本号
function update_version() {
path="${project_path}/${project_name}.xcodeproj/project.pbxproj"
sed -i '' -e "s/MARKETING_VERSION \= [0-9].*\;/MARKETING_VERSION = $version;/" $path
sed -i '' -e "s/CURRENT_PROJECT_VERSION \= [0-9].*\;/CURRENT_PROJECT_VERSION = $version;/" $path
}
# 导出ipa
function export_ipa() {
xcodebuild -exportArchive -archivePath "$export_path/${scheme_name}.xcarchive" -exportOptionsPlist "$plist_path/ExportOptions.plist" -exportPath "$export_path/build" -quiet
}
# 修改导出的ipa的名字
function rename_ipa() {
ipa_file="$export_path/build/$project_name.ipa"
new_ipa_file="$export_path/build/$ipa_name.ipa"
mv "$ipa_file" "$new_ipa_file"
}
# 开始执行脚本
echo '自动化打包开始...'
echo 'Clean项目...'
clean_project
if [ $? -ne 0 ]; then
echo "Clean 项目失败 !"
return
else
echo "Clean 项目成功 !"
fi
echo '修改版本号...'
update_version
if [ $? -ne 0 ]; then
echo "修改版本号失败 !"
return
else
echo "修改版本号成功 -> $version !"
fi
echo 'Build 项目...'
build_project
if [ $? -ne 0 ]; then
echo "Build 项目失败 !"
return
else
echo "Build 项目成功 !"
fi
echo '开始导出文件...'
export_ipa
if [ $? -ne 0 ]; then
echo "导出文件失败 !"
return
else
echo "导出文件成功 -> $export_path/build !"
fi
echo '修改ipa名字...'
rename_ipa
if [ $? -ne 0 ]; then
echo "修改ipa名字失败 !"
return
else
echo "修改ipa名字成功 -> $ipa_name.ipa!"
fi
echo "脚本执行完毕!"
shell脚本自动化打包(自用)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 打包示例 示例的打包工程和脚本我都放到git上,该示例是使用的企业证书打的企业包,如何打包其他类型证书的ipa,我...
- 前言 在上一篇文章中iOS自动化打包发布(一)介绍了如何使用Fastlane进行自动打包,但是笔者还是认为前期准备...
- 要实现的功能 update代码 编译打包app 上传到fir.im 命令 更新代码 cd /Users/xxx/x...
- 配置自动打包发布的流程通过下面几步的设置好之后,以后再进行打包发布到第三方平台或者App Store 只需要一步就...