起因
一直想把发游戏版本的流程做成自动化,和生产环境隔离,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 开发者账号
配置流程
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的请求走自己的代理