2021.12.28更新

经群友提醒,目前Unity官方已经支持直接不进行任何更改打出aab包了。

支持的Unity版本:

  • 2021 → 2021.2.0b4 以上
  • 2020 → 2020.3.15f2 以上
  • 2019 → 2019.4.29f1 以上

将Split Application Binary选项勾选

在ProjectSettings → Android → Publish Settings 最底下有个 Split Application Binary,将其勾选

原本这是会让 APK 产生 APK Expansion Files (.oob) 的选项,但在build target选AAB的情况下会变成使用Play Asset Delivery。

详细操作方式按照官方文档操作即可

也可以查看该文章解决:https://medium.com/akatsuki-taiwan-technology/unity-play-asset-delivery-1d468fd90c2d

-----------------------------------------------------------------------------------------------------

Android App Bundle是什么

Android App Bundle 是谷歌新推出的一种发布格式,之前是采用apk+obb的方式,但是这些都有个弊端,就是用户下载应用会将obb一同下载到用户设备上,占据用户手机设备的大量的存储空间,优化了个寂寞。

按照谷歌的说法,新格式采用.aab格式,.aab格式包体大小限制为150M,超过150M的应用需要采用Play Asset Delivery (简称PAD)进行分发,也就是把超过150M的资源放到谷歌后台,自己不用提供CDN供玩家下载。并且可以根据玩家的设备类型自动分发不同架构的代码和资源。

详情请参照官方文档:https://developer.android.com/guide/app-bundle

请注意,Android App Bundle 不支持 APK 扩展 (*.obb) 文件

对Unity开发的游戏的影响

从2021.8月开始,谷歌开始禁止新应用使用apk+obb的方式提交应用了,而强制改用新格式.aab。本来想着不用就不用吧,.aab格式应该对Unity很容易吧,查了资料,发现只要在Build Settings勾选Build App Bundle(Google Play)选项即可,如图:

勾选后打包,发现确实打出了.aab格式的文件了。但是生活总是开玩笑,发现事情往往没有这么简单。

上传到GooglePlay后台后,系统提示“您的App Bundle包含的以下配置会使应用的初始安装大小超过150 MB的上限:”,英文版描述是:“Your App Bundle contains the following configurations where the initial install would exceed the maximum size of 150 MB:”,我的天,看着事情似乎开始变得复杂。。。

不死心的我,想着偌大的Unity公司,不可能没有应对方案吧,这个App Bundle是2019.8月出来的政策了,2年的时间过渡了,现在都马上2021.8月了,Unity总已经解决了吧?于是我到外网找啊找,Google、Unity论坛、Unity官网,等等等等渠道查了个遍,发现似乎Unity确实还没有搞定。。。

(Unity官方在2021.3月份的回答,似乎还是没有搞定)

可以看下面的链接查看详情:

Android App Bundle, how to upload game larger than 100 mb ? | Page 2 - Unity Forum

Help Wanted - Using Addressables along with Google Play Asset Delivery. - Unity Forum

New Google Play Asset Delivery - possible with UCB? - Unity Forum

Platforms

让我确定Unity没有搞定的原因是,我查到了Unity的线路图,Support for Google Play Asset Delivery还是开发中,这就有趣了。

说了这么多,也只是确认了事情没有这么简单,Unity目前没有针对该问题的完整的解决方案,得,说归说,那没办法事情还是需要解决。

游戏包有1G左右,而且是单机游戏,没有考虑热更新以及AssetBundle方式。

最后定下来的方案是使用Addressables+Play Asset Delivery。下面细说。

系列文章索引

Unity发布Android App Bundle详解(一)Unity .aab支持情况

Unity发布Android App Bundle详解(二)Play Asset Delivery介绍

Unity发布Android App Bundle详解(三)快速转换Addressables

Unity发布Android App Bundle详解(四)Addressables+Play Asset Delivery分发

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐