iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知

最近公司在弄自动化打包工具,因为之前自己也没有搞过,所以也是通过查资料以及问同事,然后自己慢慢研究,最终才学会了这一套东西,话不多说,下面就给大家分享一下整个集成流程.


1.首先要拿到一个项目的git地址以及账号密码登录(一般公司都会有的,没有账号的话,找同事帮你开).

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第1张图片

2.安装 配置 GitLab Runner

下载runner到本地sudo curl --output /usr/local/bin/gitlab-ci-multi-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64 

//修改目录权限sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner

3.本地注册Runner需要GitLab项目的CI地址和Token,打开到GitLab,进入对应项目选择 Settings-CI/CD-Runners settings-Expand打开,就能找到CI地址和Token

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第2张图片

4.注册Runner,接下来就是一些列注册Runner的命令

gitlab-ci-multi-runner register 

 WARNING: Runninginuser-mode. 

 WARNING: The user-mode requires you to manually start builds processing: 

 WARNING: $ gitlab-runner run WARNING: 

Use sudoforsystem-mode: WARNING: 

$ sudo gitlab-runner... 

 //输入之前的URL 

 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci): https://xxxx.com/ci 

 //输入token 

 Please enter the gitlab-ci tokenforthis runner: Settings > Runner>

 //描述,这个随意了,一般用默认的就好 

 Please enter the gitlab-ci descriptionforthis runner: 

 [Your-Mac\'s-Name.local]:

    //runner的tag,这个是用于执行脚本时指定runner用的,所以最好起一个比较容易区分的

    Please enter the gitlab-ci tags for this runner (comma separated):

    Registering runner... succeeded                    runner=724a60b5

    //runner的执行器,因为Xcode项目需要用xcodebuild来执行,所以选shell

    Please enter the executor: virtualbox, ssh, shell, parallels, docker, docker-ssh:

    shell

    Runner registered successfully. Feel free to start it, but if it's running    already the config should be automatically reloaded!

以上还有一些是false和true的命令,直接回车就好,默认值,包括tag,不用填直接回车,这时候再刷新GitLab项目的 Runner 界面就会看到一个 Active Runner 了

确认好了之后可以启动 Runner 了。

gitlab-ci-multi-runner start

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第3张图片

5.配置Xcode

Xcode唯一需要配置的就是要将你运行的scheme设置成Shared。

打开Xcode项目

选择Product > Scheme > Manage Schemes

将对应的scheme勾选上Shared

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第4张图片

6.搭建Fastlane

6.1.环境准备

首先 xcode-select --install 确保安装了最新版本的Xcode Command Tools.

然后可以通过 [sudo] gem install fastlane -NV 来安装fastlane;

如果安装了homebrew也可以通过 brew cask install fastlane 进行安装。

6.2.简单使用

安装成功后,在命令行Terminal中切换到项目所在目录,

举个栗子:项目工程在Desktop中的Test中,则 cd Desktop/Test;此时ls,应该看到了项目文件Test.xcodeproj等文件。

然后输入 fastlane init 会进行fastlane的初始化配置,然后会出现一些配置选项:1为自动截屏,主要为了不同设备下的截图,可以做为itune connect中的App信息截图使用;2为自动打包并发布到TestFlight;3为自动打包并上传到itune connect中;4位手动安装。

选择2和3时需要配置一些apple账户和密码。

由于个人只是为了进行打包使用,我选择4,当然也可以选择2或3,然后对生成的Fastlane文件进行修改去掉上传的action就可以了

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第5张图片

以下是我的项目中对Fastfile进行修改,因为项目中用到多个Target(区分服务器环境sit、uat、pro),解释一下,sit是lane的名称,里面的gym是配置打包的参数,很容易看懂,pgyer是上传蒲公英的命令.其中api_key和user_key是两个参数,在蒲公英应用中可以找到.

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第6张图片

lane :sit do

    gym(scheme: "NaXinHaoDai-SIT",

        export_method:"development",

        output_directory: "./build", # 打包后的 ipa 文件存放的目录

        output_name: "NaXinHaoDai-SIT"  # ipa 文件名

        )

    pgyer(api_key: "ac8be42e49f45b4ef59f9e78937d7bd8", user_key: "87111b3236744819daa7117c3d7e0456", update_description: "1.0版本发布")

end

7创建.gitlab-ci.yml文件,这个文件可以在gitlab上生成,而且是在项目根目录下.文件内容如下,- fastlane sit这一句命令就是触发打包上传的,  - echo "xxx"就是发送邮件的命令,分别指邮件内容,这里我给的是一个蒲公英下载链接,mail -s是邮件标题,最后是邮件地址,先给自己来一封.artifacts:这个是打包上传到gitlab,上传好后可以下载.

stages:

  - build

variables:

  LC_ALL: "en_US.UTF-8"

  LANG: "en_US.UTF-8"

build_project:

  stage: build

  script:

    - fastlane sit

    - echo "https://www.pgyer.com/aadd1b891ca9e0e4cc789b1b116ef28a" | mail -s "iOS安装包已发布,请点击链接下载" [email protected]

  artifacts:

    paths:

      - ./build/NaXinHaoDai-SIT.ipa

8.到这里整个流程已经完成了,接下来只要提交代码,就会去自动化打包,然后上传到蒲公英平台,最后发邮件通知相关人员下载.

iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第7张图片
iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知_第8张图片



整个流程集成大概就是这样,是不是简化了打包程序,变得很简单,如果有哪里写的不清楚或者不好的地方,欢迎大家学习指正,Email:[email protected],喷子勿喷!

你可能感兴趣的:(iOS集成Gitlab-CI+Fastlane打包+上传至蒲公英+邮件通知)