iOS自动化打包
第一步 如果要发布到fir,需要安装 终端执行 gem install fir-cli
第二步
-
安装RVM
如果没有安装过rvm,需要安装rvm,在终端输入rvm -v命令查看,如果打印出rvm:command not found说明没有安装过rvm,如果能打印出rvm版本等信息说明安装过。如果没有安装过rvm可以通过下面的命安装,如果已经安装过可以忽略。
在终端输入 curl -L get.rvm.io | bash -s stable ,然后稍等一会rvm就安装好了
在终端输入 source ~/.bashrc
在终端输入 source ~/.bash_profile
再输入rvm -v查看安装成功
第三步 配置证书,开启自动化之路
然后修改一下sh文件 可以去这个地址下载
链接: https://pan.baidu.com/s/1Q8sqa_bE0XZCVGyn0rLaNA 提取码: qs7u
下面是上传到苹果商店的完整脚本
#!/bin/bash
# 自己的AppleID账号密码
AppleID="AppleID"
AppleID_Password="AppleID密码"
project_path=$(pwd)
#取当前时间字符串添加到文件结尾
now=$(date +%Y-%m-%d-%H\:%M\:%S)
#取当前日期
today=$(date +%Y-%m-%d)
# 指定项目的scheme名称
scheme="项目的scheme名称"
# 指定项目名
project_name="项目名"
# 指定要打包的配置名
configuration="Release"
# plist文件所在目录
exportOptionsPlistPath=${project_path}/ExportOptionsForAppStore.plist
# 指定项目地址
workspace_path="${project_path}/${project_name}.xcworkspace"
# 指定输出路径
output_path="$HOME/Library/Developer/Xcode/Archives"
# 指定输出归档文件夹地址
archiveFinder_path="${output_path}/${today}"
# 指定输出归档文件地址
archive_path="${archiveFinder_path}/${project_name}${now}.xcarchive"
# 指定ipa输出地址
ipa_path="~/Desktop/Firestonelamp-IPA/${project_name}${now}"
# altool工具路径
altoolPath="/Applications/Xcode10.1.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
#输出设定的变量值
echo "===workspace path : ${workspace_path}==="
echo "===archive path : ${archive_path}==="
echo "===ipa path : ${ipa_path}==="
echo "===profile : ${provisioning_profile}==="
#先clean一下
echo "===开始 clean 工程==="
xcodebuild clean \
-workspace ${workspace_path} \
-scheme ${scheme} \
-configuration ${configuration} \
-quiet || exit
echo "===clean 完成==="
#根据指定的项目, scheme, configuration, 输出路径, 打出archive包
echo "===开始打包==="
if [ ! -d "${archiveFinder_path}" ]; then
mkdir ${archiveFinder_path}
fi
xcodebuild archive \
-workspace ${workspace_path} \
-scheme ${scheme} \
-configuration ${configuration} \
-archivePath ${archive_path} \
-quiet
echo "===打包完成==="
#导出ipa包
echo "===正在导出ipa==="
xcodebuild \
-allowProvisioningUpdates \
-exportArchive \
-archivePath ${archive_path} \
-configuration ${configuration} \
-exportPath ${ipa_path} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet
echo "===.ipa 文件已导出==="
# open ${ipa_path}
# 验证并上传到App Store
echo "===验证并上传到App Store==="
"$altoolPath" --validate-app -f ${ipa_path}/${project_name}.ipa \
-u ${AppleID} -p ${AppleID_Password} \
-t ios --output-format xml
"$altoolPath" --upload-app -f ${ipa_path}/${project_name}.ipa \
-u ${AppleID} -p ${AppleID_Password} \
-t ios --output-format xml
echo "===上传完成==="
exit
脚本解释
下面的意思 清理构建目录
echo "===开始 clean 工程==="
xcodebuild clean \
-workspace ${workspace_path} \
-scheme ${scheme} \
-configuration ${configuration} \
-quiet || exit
echo "===clean 完成==="
编译之前先clean下,就如同在Xcode进行Product -> Clean。
编译打包成Archive
xcodebuild archive \
-workspace ${workspace_path} \
-scheme ${scheme} \
-configuration ${configuration} \
-archivePath ${archive_path} \
-quiet
编译工程,编译并生成.xcarchive文件,放在build_path下,名字是project_name.xcarchive,就如在Xcode进行Product -> Archive这一步最为耗时.
将Archive导出ipa
xcodebuild \
-allowProvisioningUpdates \
-exportArchive \
-archivePath ${archive_path} \
-configuration ${configuration} \
-exportPath ${ipa_path} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet
将生成的.xcarchive文件导出.ipa包到指定的exportIpaPath路径下。
用\来进行换行分隔,一条shell命令过长时可以进行分割显示.
$变量名是引用变量,拿来使用
|| exit 指明如果这一条命令执行失败,则退出当前shell.
通过Fir-cli命令上传到Fir平台
# 将XXX替换成自己的Fir平台的token
fir login -T XXX
fir publish $exportIpaPath/$scheme_name.ipa
通过altool工具提交ipa包到app store
这个工具实际上是Application Loader,打开Xcode-左上角Xcode-Open Developer Tool-Application Loader 可看到,它的路径:
现在是transport
# altool工具路径
altoolPath="/Applications/Xcode10.1.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
验证并上传到App Store # 将-u 后面的AppleID替换成自己的AppleID的账号,-p后面的AppleID_Password替换成自己的密码
echo "===验证并上传到App Store==="
"$altoolPath" --validate-app -f ${ipa_path}/${project_name}.ipa \
-u ${AppleID} -p ${AppleID_Password} \
-t ios --output-format xml
"$altoolPath" --upload-app -f ${ipa_path}/${project_name}.ipa \
-u ${AppleID} -p ${AppleID_Password} \
-t ios --output-format xml
echo "===上传完成==="
上传到App Store的命令解释
上一篇: YD:Jmeter下载安装
推荐阅读
-
Python自动化测试工具Splinter简介和使用实例
-
Linux下的自动化运维工具ansible初探
-
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
-
前端工程师通过nodejs链接linux,并上传代码进行半自动化更新,省去ssh+ftp的链接工具-前端黑科技-SegmentFault思否
-
苹果在iOS 13内大量安插服务类广告:引用户不满
-
苹果发布iOS 13.4第二个测试版:修复iPhone当车钥匙细节
-
iOS史诗级漏洞:苹果除非更换硬件
-
【读书笔记】iOS-加速计与陀螺仪
-
头戴新品确定!苹果发布iOS 14.3新测试版:启用超大体积新图片格式
-
售价199元 适配于iOS系统的小米手环土豪版曝光