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的命令解释 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值