脚本自动化打包
最近尝试过自动化打包,之前有发过一篇Jenkins + SVN + Cocoapods 实现iOS自动化打包
关于自动化打包网上有很多教程,选择自己需要的就行了,今天跟大家介绍下脚本自动化打包
fastlane gym
facebook xctool
使用fastlane gym打包
1.安装gym
sudo gem istall gym
如果安装出现Permition denied的提示
gem install -n /usr/local/bin gym
2.安装fir-cli
gem install fir-cli
3.fastlanede 打包脚本
#!/bin/bash#计时
SECONDS=0#假设脚本放置在与项目相同的路径下
project_path=$(pwd)
#取当前时间字符串添加到文件结尾
now=$(date +"%Y_%m_%d_%H_%M_%S")#指定项目的scheme名称
scheme="tete"
#指定要打包的配置名
configuration="development"
#指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method参数
export_method='development'#指定项目地址
workspace_path="$project_path/tete.xcworkspace"
#指定输出路径
output_path="/Usersengxun/Desktop/"
#指定输出归档文件地址
archive_path="$output_path/tete_${now}.xcarchive"
#指定输出ipa地址
ipa_path="$output_path/tete_${now}.ipa"
#指定输出ipa名称
ipa_name="tete_${now}.ipa"
#获取执行命令时的commit message
commit_msg="$1"#输出设定的变量值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===export method: ${export_method}==="
echo "===commit msg: $1==="#先清空前一次build
gym --workspace ${workspace_path} --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name}#上传到fir
fir publish ${ipa_path} -T fir_token -c "${commit_msg}"#输出总用时
echo "===Finished. Total time: ${SECONDS}s==="
4.把脚本文件放在工程目录里面和xcodeproj同级目录,然后在终端中切换到工程目录执行脚本即可
文章图片
Paste_Image.png
文章图片
Paste_Image.png 使用facebook xctool打包
1.安装xctool
brew install xctool
【脚本自动化打包】2.打包脚本
#!/bin/bash#计时
SECONDS=0#假设脚本放置在与项目相同的路径下
project_path=$(pwd)
#取当前时间字符串添加到文件结尾
now=$(date +"%Y_%m_%d_%H_%M_%S")#指定项目的scheme名称
scheme="DemoScheme"
#指定要打包的配置名
configuration="Adhoc"
#指定打包所使用的provisioning profile名称
provisioning_profile='AdHoc Profile'#指定项目地址
workspace_path="$project_path/Demo.xcworkspace"
#指定输出路径
output_path="/Users/your_username/Documents/"
#指定输出归档文件地址
archive_path="$output_path/Demo_${now}.xcarchive"
#指定输出ipa地址
ipa_path="$output_path/Demo_${now}.ipa"
#获取执行命令时的commit message
commit_msg="$1"#输出设定的变量值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===profile: ${provisioning_profile}==="
echo "===commit msg: $1==="#先清空前一次build
xctool clean -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration}#根据指定的项目、scheme、configuration与输出路径打包出archive文件
xctool build -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration} archive -archivePath ${archive_path}#使用指定的provisioning profile导出ipa
#我暂时没找到xctool指定provisioning profile的方法,所以这里用了xcodebuild
xcodebuild -exportArchive -archivePath ${archive_path} -exportPath ${ipa_path} -exportFormat ipa -exportProvisioningProfile "${provisioning_profile}"#上传到fir
fir publish ${ipa_path} -T fir_token -c "${commit_msg}"#输出总用时
echo "===Finished. Total time: ${SECONDS}s==="
推荐阅读
- Beego打包部署到Linux
- 人脸识别|【人脸识别系列】| 实现自动化妆
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- Linux|109 个实用 shell 脚本
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- Android|Android gradle打包涉及task源码解析(五)
- Java+Selenium|Java+Selenium Web UI自动化测试的一些小总结
- 5.|5. Python 入门- 课程 5 脚本
- linux作业9
- pyinstaller解决闪退问题