起因

一直想把发游戏版本的流程做成自动化,和生产环境隔离,Jenkins的流程太繁杂,不够快乐。

以前也看到过Unity Cloud Build的介绍,直到用了才发现,真鸡er好用

最终效果介绍

  • 本地写完代码,用git 提交时,自动触发Unity Cloud Build
  • Cloud Build 根据 Config 中 Auto Build 区分是否要打包
  • 当打包完成,向Team中的成员发送带有下载链接的邮件
  • 手机平台,安卓和iOS可以直接在浏览器完成App的安装

邮件内容

氪金部分

  • Unity 许可证,我使用的是 Unity Plus
  • Unity Teams Advanced,现在可以免费用1个月,3个席位是9美元/月
  • Apple 开发者账号

配置流程

Dashboard地址

gitlab 配置

创建好项目后,在Config中按照下面的箭头选择

这里也有安卓和iOS的配置教程,也可以按照这里面的步骤参考

输入自己的gitlab 仓库地址,拿到授权后,Unity Cloud Build 和gitlab的绑定就完成了

安卓配置

在这里可以选择分支和项目的Subfolder,如果 Auto-build开启,那么你在git每次提交,这个配置都会自动打包

填好自己的BundleID,安卓就配置完了

iOS配置

iOS就比较烦了,中间问了好几次专门做iOS开发的朋友才搞定

这里要注意的是,p12证书和mp文件需要从苹果的网站上生成,不可以用之前XCode上的文件,我自己用老证书一直失败

Unity Cloud Build 在打包iOS的时候,只有到最后才能看到证书到底配置是否正确,花了我很久的时间,剩下的配置和安卓差不太多

其他功能

AssetBundle & Addressable

我自己使用的是Addressable来做的资源管理,Unity提供了打包前自动Build Addressables 的功能

Pre-Build & Post-Build

打包肯定会涉及到一些资源包的上传,这里Unity提供了两个配置,可以在打包前和打包后执行一个.sh文件,可以将AB包或者Addressable的文件用rsync 上传到自己的文件服务器上(具体还没有测试)

在Target Config 中的 Advanced options 中进行配置

缺点

今天是第一天使用Unity Cloud Build,总的来说配置好了之后非常快乐,git push 之后就不用操心后续打包和版本控制的问题了

但是在iOS第一次配置的时候,有关证书配置,需要等整个包全部打完才能看到证书是否有效

而且如果没有Proxy,在打开Unity的服务或者下载安装包时非常慢,需要自己在PC和手机上调整unity.com和unity3d.com的请求走自己的代理


What doesn’t kill you makes you stronger.