常用Action简述
Action列表文档: Actions
我们常用的主要包括下面几部分,其他action的使用可以参考官方文档:
Action | 描述 |
---|---|
match | 一个新的证书和配置文件管理工具。把所有需要用到的证书传到git私有库上,任何需要配置的机器直接用match同步回来就不用管证书问题了推荐新项目使用。🌟🌟🌟🌟🌟 |
cert | 自动创建管理iOS代码签名证书,会去自动创建证书,永远不会撤销现有的证书。如不能创建会报错。 |
sigh | 用来创建、更新、下载、修复Provisioning Profile的工具 |
gym | 自动化编译打包工具.shenzhen的代替品.🌟🌟🌟🌟🌟 |
pem | 自动生成、更新推送配置文件 |
produce | 如果你的产品还没在iTunes Connect(iTC)或者Apple Developer Center(ADC)建立,produce可以自动帮你完成这些工作 |
deliver | 自动上传截图,APP的元数据,二进制(ipa)文件到iTunes Connect,用于发布 |
snapshot | 自动截图(基于Xcode7的UI test)为pilot,boarding和deliver等工具提供和 iTC 和 ADC 的交互API。spaceship本来是个独立的项目,后来被Fastlane收编进来 非官方的iTunes Connect JSON API的文档 |
frameit | 可以把截的图片自动套上一层外边框 |
pilot | 管理TestFlight的测试用户,上传二进制文件 |
boarding | 建立一个添加测试用户界面,发给测试者,可自行添加邮件地址,并同步到iTunes Connect(iTC) |
scan | 自动运行测试工具,并且可以生成漂亮的HTML报告 |
spaceship | 为pilot,boarding和deliver等工具提供和 iTC 和 ADC 的交互API。spaceship本来是个独立的项目,后来被Fastlane收编进来 |
WatchBuild | 是一个独立的iTC监控工具,开启WatchBuild可以监控iTC上的文件状态,弹出MacOS自带的Notification |
常用Action使用
一:gym
常用参数:
scheme: 指定打的哪个scheme
project: 指定project (未使用cocopods)
workspace: 指定workspace (使用cocopods)
clean: 打包前clean
xcargs: 附加一些参数传递给xcodebuild 如: xcargs: 'DEBUG_INFORMATION_FORMAT="dwarf-with-dsym"',
export_method: 出包方法 app-store, ad-hoc, package, enterprise, development
configuration: 指定构建App的配置 Release、Debug、自定义
output_directory : 输出目录
output_name: 输出名称
include_symbols: 是否包含调试符号
include_bitcode: 是否开启bitcode
纯swift工程打包,在非appstore证书下签出来的包都缺少一个swiftsupport文件夹,里面放的是swift的支持库。
二:scan
release情况下无法正常运行scan,需要手动去Build Setting中更改enable Testability 在release 下的状态,改为 yes才可以运行。但是官方不建议做release下开启,Test一般在development configuration 下执行。
三:match
一个新的证书和配置文件管理工具。它会把所有需要用到的证书传到git私有库上,任何需要配置的机器直接用match同步回来就不用管证书问题了。保证大家用的都是同一份。不过我们一般都是一台机器需要用到distribution证书,所以意义不大。
1.match只认识通过match方式创建的pp文件 证书,其他方式创建的不予理会。
2.使用match 需要先撤销现在的证书。
3.如果苹果端的证书,pp文件已删除,那么远端git上的文件也会失效,并且在重新match的时候会失败,好像就只能删光 git端内容,重新match一遍。
常用参数:
git_url : 指定对应git地址
git_branch : 指定对应branch
type :请求文件类型, appstore, adhoc, development, enterprise
app_identifier : app_bundle_identify
clone_branch_directly : 只更新对应branch,只有在存在这个branch时才生效
force_for_new_devices : 如果设备devices列表更新了,就强制更新配置概要文件
verbose :打印出额外的信息和所有的命令
四:deliver
用于直接发包到appstore,可以选择跳过图片和元数据上传,只提包,后面再配图和数据:如下 skip_screenshots 和 skip_metadata 参数
deliver(
ipa: "#{OUTPUT_DIRECTORY}" + "/" + "#{IPA_NAME}",
skip_screenshots: true,
skip_metadata: true
)
五:pilot
用于发布testflight内部测试,属于testflight action的别名
常用参数:
ipa :要提交的包地址
team_name、team_id :如果有多个team 用于区分team
skip_waiting_for_build_processing : 在提交完成后的等待是否跳过,一般跳过
changelog
testflight(
ipa : '../xx.ipa'
)
六:spaceship [常见问题官方解释]
spaceship其实一般fastfile中不会使用到,但是由于涉及到与ADC的通信,会出现一些奇奇怪怪的问题,所以对它也要有一点了解。
当第一次使用fastlane安装的时候,会要求输入账号密码核实你的身份来连接ADC,这个时候你提供的登录验证会处理为会话存到 spaceship 的 cookie,会话大概一个月有效期,一个月后失效,通常我们只有在打包失败后才会发现这个问题。
上面提到的这些action都是常用的,正常打包流程必不可少的部分,还有一些常用于辅助作用的Action
- resign :重新签名
fastlane sigh resign dev.ipa --signing_identity "证书ID" -p “dev.mobileprovision"
- get_info_plist_value :获取info.plist中得某个key的值
- set_info_plist_value :设置info.plist中得某个key的值
- increment_build_number :自动递增项目build号
- increment_version_number :自动递增项目版本号
- get_version_number: 获取版本号(新fastlane版本不能再添加scheme参数,只需要target即可)
以上两个都需要先配置好xcode, 配置文档