关于Fastlane的一点记录

本文介绍了如何结合jenkins和Fastlane实现iOS应用的自动打包与上传到TestFlight。在过程中,作者遇到了code signing问题、build number更新和release notes提交等挑战,并逐一分享了解决方案,包括使用特定的Fastlane命令和插件,以及自动化管理文本文件作为release notes。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fastlane与基础iOS自动部署

最近一段时间一直在做jenkins+fastlane的iOS自动打包上传,遇到了不少坑,还好很多时候都有前辈的经验可以借鉴。

jenkins不说了, 目前只用jenkins做了自动化,并没有用到它的打包功能,设置实在是太复杂了。所以就用了jenkins来调用fastlane的打包,不得不说设置实在是简单的多,下面主要说说基本用法和可能的坑:

下载

推荐用sudo gem install fastlane

设置

首先cd到项目根目录,然后运行fastlane init.
会要求输入apple id 账户 这时候会link到钥匙串
这之后fastlane会有四个选择
1:截图
2:上传beta版本到testflight
3:部署到appstore
4: 手动设置
选择完毕后fastlane会生成几个文件 其中主要的设置都是集中再fastfile里面

[外链图片转存失败(img-I0GrPt28-1563853256553)(https://user-images.githubusercontent.com/43685244/61680019-bf421c00-ad3a-11e9-8e91-5e3737dcd48c.png)]

这时候点开fastfile
Screenshot 2019-07-23 at 11 13 19 AM
我们主要是在do 之后进行修改。
这时候已经可以运行 fastlane beta 来启动脚本了,请注意, 这个将会直接上传到testflight。

问题一

我遇到的情况比较麻烦,code signing出了问题,所以我去了https://developer.apple.com 重新下了一份provisioning profile 并且 这样

build_app(scheme: “jenkinstest”,
export_options: {
provisioningProfiles: {
“com.example.jenkinstest” => “你的provisioning profile名字 (有时候得用那串hashcode)”
} )

下载下来的provisioning profile 找不到hashcode怎么办? 去~/Library/MobileDevice/Provisioning Profiles 看看 按修改时间排序 最近加入的那个应该就是你下载的。

问题二

关于build number

每次上传testflight 都需要新的build number 这时候有如下几种方法
1: 自带方法 increment_build_number
2:一个好用的 plugin
首先运行 fastlane add_plugin versioning
然后加入increment_build_number_in_plist
这样每次上传都会更新plist中的build number
但是这个对jenkins不友好 因为jenkins每次是从git pull 下来code, build number还是之前那个。
所以
3: 用
increment_build_number({
build_number: latest_testflight_build_number + 1
})
这个直接按照testflight上的build number 来设置build number比较好用。

附上插件的github地址 https://github.com/SiarheiFedartsou/fastlane-plugin-versioning

以及fastlane 相关文档地址 https://docs.fastlane.tools/actions/

问题三

提交release notes
这个fastlane提供了如下几种可能
1: Automatically based on git commits
2: Prompt for changelog
3: Fetching the changelog from the file system or remote server
https://docs.fastlane.tools/getting-started/ios/beta-deployment/)
第一个第二个都需要人为的在上传之前改fastfile参数,但是我需要的是自动化啊。于是想到了这个傻瓜方法。
首先我整了个文本文件 changelog.txt 加入到了git里,每次commit之后把修改的东西写进这个txt中这样就准备好了release notes。最后用 脚本中的cp命令把这个txt复制到fastlane文件夹,再使用第三种方法。 (有点傻 但是能用)

总结

fastlane还是个很好用的工具的,有什么问题stackoverflow和github上也有很多讲解。有什么问题也欢迎与我交流。
我的个人网站 bobozhu.tech (用的heroku 国内访问可能有点问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值