iOS 自动打包

1、自动打包并发布到Fir.im

1.1 安装fastlane

fastlane几乎包含了和ipa相关的所有功能,例如打包、提交审核、测试、自动截屏等。
安装fastlane,只需要在终端输入(需要提前安装gem环境):

sudo gem install fastlane

1.2 使用gym工具

在安装fastlane时已经默认安装了常用工具,条用gym只需要cd到项目目录,然后执行

fastlane gym

,该命令会自动打包然后推送到iTunesConnect中,在此过程中需要输入 AppId及密码。

如果不需要提交到iTunesConnet中,可执行

fastlane gym --export_method ad-hoc

会自动生成ipa文件,以便后续操作.

1.3 Fir

安装fir-cli

gem install fir-cli

安装后可以先执行登录操作,登录后在后续操作中不用重复添加token(token需要到fir个人账号中获得),登录方法

fir login 【API Token】

将上述【API Token】替换为你自己的token。

发布ipa到fir,需要提前准备好ipa文件,执行

fir publish 【ipa_file_path】

将【ipa_file_path】替换为你的ipa本地路径。

2、自动化打包

为了实现一键打包的方案,需要将gym和fir结合到一起,这里利用了一个脚本文件,在使用时直接执行这个脚本文件即可。文件内容如下:

#!/bin/bash

#设置超时
export FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120

#计时
SECONDS=0

#假设脚本放置在与项目相同的路径下
project_path=$(pwd)
#取当前时间字符串添加到文件结尾
now=$(date +"%Y_%m_%d_%H_%M_%S")

#指定项目的scheme名称
scheme="Demo"
#指定要打包的配置名
configuration="Adhoc"
#指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method参数
export_method='ad-hoc'

#指定项目地址
workspace_path="$project_path/Demo.xcworkspace"
#指定输出路径
output_path="$project_path/IPA"
#指定输出归档文件地址
archive_path="$output_path/Demo_${now}.xcarchive"
#指定输出ipa地址
ipa_path="$output_path/Demo_${now}.ipa"
#指定输出ipa名称
ipa_name="Demo_${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
fastlane 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 "XXX_YOUR_API_TOKEN_XXX" -c "${commit_msg}"

#输出总用时
echo "===Finished. Total time: ${SECONDS}s==="

参考链接:

Fastlane + Bugly自动化部署测试包

iOS一键搞定自动打包并发布到AppStore和Fir

iOS打包机器人-通过Python轻松实现一键打包上传Fir.im并发送邮件通知测试人员

你可能感兴趣的:(iOS 自动打包)