前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS+Fastlane自动打包、发布测试、消息通知,完美结合!iOS+Fastlane自动打包、发布测试、消息通知,完美结合!

iOS+Fastlane自动打包、发布测试、消息通知,完美结合!iOS+Fastlane自动打包、发布测试、消息通知,完美结合!

作者头像
Light413
发布2021-12-08 10:04:28
1.6K0
发布2021-12-08 10:04:28
举报

iOS打包烦不烦?偶尔一次还好,但是一天三五次测试打包肯定让人烦,不信你试试!

曾经我以为自动化打包很没必要,所以一直都是Xcode中规中矩的打包操作然后发布;而如今我正在经历着一天之中反复的测试、回归,有时一天打包发布个三五次,不断的来回告诉测试妹子打包发布了去下载吧,有时妹子也烦。

同时不断的重复性的build、 archive、导出、发布测试平台实属枯燥。再加上电脑卡、反应慢,打个包一二十分钟过去了也耽误不少时间,所以自动化打包迫在眉睫。

所以我们要实现一行命令自动打包、发布、然后自动发消息通知测试。

最后我们选择了Fastlane 、 蒲公英发布测试;

现在我们只需要一行命令搞定让枯燥的打包自动进行,自动发布,自动发消息通知测试,而且整过流程用时几分钟就能搞定,比以前大大的少了很多,真是大大的提高工作效率;

我们操作路线: Fastlane自动打包 -> 蒲公英发布测试 ->钉钉

  • Fastlane 实现自动打包,自动发布到蒲公英平台
  • 蒲公英:App发布平台;
  • 钉钉,建立的开发测试群,每次自动打包发版后,系统机器人就会自动提示如下:

是不是很方便?群里的每个人都知道了,再也不用我们去通知了!

接下来就按步骤去实现它吧。。。

Fastlane安装与配置

Fastlane基于ruby环境自动化工具集,它不是一个工具,它是一系列的工具的集合,基本上涵盖了打包,签名,测试,部署,发布,库管理等等移动开发中涉及到的内容。 同时该套件也支持与 Jenkins 、CocoaPods、xctools 等其他第三方工具的集成。

  • 1、安装 Xcode command line tools:

xcode-select --install

安装过会提示已经安装;

代码语言:javascript
复制
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
  • 2、安装Fastlane

sudo gem install fastlane

代码语言:javascript
复制
Successfully installed fastlane-2.193.1
Parsing documentation for fastlane-2.193.1
Done installing documentation for fastlane after 5 seconds
1 gem installed
  • 3、fastlane 初始化

fastlane init

cd 打开工程所在目录,执行fastlane init出现如下提示:

代码语言:javascript
复制
[13:21:46]: What would you like to use fastlane for?
1.   Automate screenshots
2. ✈️  Automate beta distribution to TestFlight
3.   Automate App Store distribution
4.   Manual setup - manually setup your project to automate your tasks

选择4 ,手动设置工程文件;然后一路enter

然后可看到工程目录下多了几个文件:

其中Appfile、Fastfile就是我们需要修改的文件;

  • Appfile:App相关的信息,写以下三项就可以:
代码语言:javascript
复制
app_identifier "com.XX.XX"
apple_id "appid"
team_id "teamid"
  • Fastfile:描述打包相关的配置信息,初始内容如下:
代码语言:javascript
复制
default_platform(:iOS)
platform :iOS do
  desc "Description of what the lane does"
  lane :custom_lane do
    # add actions here: https://docs.fastlane.tools/actions
  end
end

一个lane可理解为就是一个任务,我们打包发布到蒲公英是一个任务,打包发布到App Store也是一个任务; lane中可添加多个action,也就是具体的操作,比如打包方法操作是一个action,发布蒲公英操作也是一个action;

Fastlane本身自有的一些lane,可以在不同的 阶段做一些额外的操作:

before_all,就是在执行一次脚本之前首先执行的代码,我们可以在这里面执行一些公共的东西,比如git_pull,cocoapods。

after_all, 成功结束之后,处理共有的后置逻辑。

before_each,每次执行 lane 之前都会执行一次。

after_each,每次执行 lane 之后都会执行一次。

error,在执行上述情况任意环境报错都会中止并执行一次。

我要发布到蒲公英,所以完整的配置如下:
代码语言:javascript
复制
default_platform(:iOS)
platform :iOS do
  lane :hs_test do
    # add actions here: https://docs.fastlane.tools/actions
    gym(
          clean: true,
          output_directory: './fastlane/build',
          output_name:"XX.ipa",
          scheme: 'XXX',
          configuration: 'Debug',###########
          # sdk:"iOS 12.0",
          # archive_path:"./fastlane/Archive",
          include_symbols:true,
          export_options: {
            method: 'development',#测试包
            provisioningProfiles: {
                "com.xxxx.xxx" => "20210906_dev" #测试打包描述文件
            },
          }
    )
    
    updateVersionDes = "提到蒲公英的版本更新信息;"
    pgyer(
        api_key: "蒲公英API Key", 
        user_key: "蒲公英user_key"
        update_description: updateVersionDes
    )
    end
end

然后再终端中输入

代码语言:javascript
复制
fastlane hs_test (可理解为就是我们的任务名)

然后剩下的就不用我们管了,它会自动的帮我们处理余下的所有工作;

参数解释:

  • gym:fastlane 封装的打包方法、会自动处理打包、签名等操作; 配置项 clean:每次执行前是否清空工程; output_directory:输出文件目录 output_name:App名字’ scheme:App scheme configuration:The configuration to use when building the app. Defaults to 'Release' export_options:导出时配置项,及发布证书相关;

我用到的不多,其他参数还很多具体参看官方文档吧。

至此关于Fastlane 配置完成了,现在就可以愉快的打包了,然后在工作目录中看到生成的IPA包。

蒲公英设置

蒲公英支持Webhook机制,可以将事件消息通知分发出去;所以当我们发布新版本时可以给钉钉或微信发送消息,通知App版本更新;

打开指定的应用,选择【内测分发】-【Webhook设置】创建新的Webhook

钉钉设置

打开钉钉群【设置】-【智能群助手】-创建机器人

复制Webhook URL https://oapi.dingtalk.com/robot/send?access_token=000351XXXXXXXXXX,到蒲公英Webhook URL ;

至此所有配置算是完成了,现在我们就可以实现一行命令打包,然后去逍遥自在了_;

APP自动化方面操作功能很强大,能做的还有很多,今天只是初步实现测试环境自动化打包,更高级的用法还有待继续摸索。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/9/17 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所以我们要实现一行命令自动打包、发布、然后自动发消息通知测试。
  • 最后我们选择了Fastlane 、 蒲公英发布测试;
  • Fastlane安装与配置
  • 蒲公英设置
  • 钉钉设置
  • 至此所有配置算是完成了,现在我们就可以实现一行命令打包,然后去逍遥自在了_;
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档