fastlane

fastlane是一组工具套件,旨在实现iOS应用发布流程的自动化,并且提供一个运行良好的持续部署流程,只需要运行一个简单的命令就可以触发这个流程。

fastlane是一个ruby脚本集合,其中囊括了向苹果商店提交新应用或更新已有应用所需要的最常用任务。

  • deliver用于上传应用的二进制代码,应用截屏和原数据到应用商店
  • snapshot可以自动化iOS应用在每个设备上的本地化截屏过程
  • frameit用于在应用截屏外添加设备框架
  • PEM可以自动化地生成和更新应用推送通知描述文件
  • sigh可以生成并下载开发者的应用商店配置文件

使用fastlane gym打包

安装gym

首先需要安装ruby环境,然后在命令行中输入:

sudo gem install gym

概念

  • *.workspace文件

使用CocoaPods管理的工程在执行完pod install之后生成的workspace文件

  • scheme

显示在Xcode的左上角,run图标的右边,设备选择的左边

  • configuration

在Xcode中选项目,Info tab下会列出所有的configuration,一般有Debug和Release两种

  • provisioning profile

在Xcode中选target,在Build Settings tab下搜索Provisioning Profile,默认应该是Automatic,点击看到下拉列表中的就是所有可用的名称

脚本执行步骤

  1. 清理项目

  2. 生成archive

  3. 导出ipa

  4. 上传到fir

上脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash

#计时
SECONDS=0
project_path=$(pwd)
now=$(date +"%Y_%m_%d_%H_%M_%S")
current_user=$(logname)
scheme="your scheme name"

configuration="Release"
#指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method参数
export_method='ad-hoc'

workspace_path="$project_path/$scheme.xcworkspace"

output_path="/Users/$current_user/Desktop"

archive_path="$output_path/$scheme${now}.xcarchive"

ipa_path="$output_path/$scheme${now}.ipa"

ipa_name="$scheme${now}.ipa"

commit_msg="$1"

fir_token="your fir token"

#输出设定的变量值
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==="