【Unity3D】Android App Bundle(aab)打包上架Google Play介绍

简介: 总体说来,Android App Bundle打包有3种方式,每种方式都有成功上架Google Play进行测试通过,因此实用程度还是挺高的。能够理解以下内容的前提是会打apk包,知道如何生成Asset Bundle文件,这块内容可以参考我的上一篇文章。

【Unity3D】Android App Bundle(aab)打包上架Google Play介绍


 总体说来,Android App Bundle打包有3种方式,每种方式都有成功上架Google Play进行测试通过,因此实用程度还是挺高的。能够理解以下内容的前提是会打apk包,知道如何生成Asset Bundle文件,这块内容可以参考我的上一篇文章。


一、使用Unity3D自带功能打aab包


微信图片_20220424144405.png

图1


   此方法最简单,勾选打包选项"Build App Bunlde(Goole Play)"即可。在点击Build的时候就会提示保存xxx.aab文件。【注意】这种方式打出的aab包的大小必须在150M以内,否则无法上架Google,不过这对于小游戏来说应该是足够了。


二、使用Google提供的插件(新增)


   下载地址:https://github.com/google/play-unity-plugins/releases

   在今年6月份开始研究打aab包的时候,Google还没有提供这种方式,对于需要从APK+OBB模式转成AAB+Asset Pack模式还是一件比较麻烦的事情(参考方法三),也许是Google良心发现,所以才提供了一个折中的方案。


   打包步骤:


       1. 下载插件com.google.android.appbundle,导入Unity3D。


       2. 通过菜单Google->Android App Bundle->Asset Delivery

Settings... 打开配置界面(如下图2展示)。


       3. 勾选Separate Base APK Asset(如下图3展示)。


       4. 然后通过菜单Google->Build Android App Bundle...即可打出aab包。


微信图片_20220424144409.jpg

图2


微信图片_20220424144413.jpg

图3


   图3的英文也介绍的比较详细,无需额外对资源加载等做处理,【注意】只需要将打好的Asset Bundle文件拷贝的StreamingAssets目录即可。这也是正常打APK包需要的步骤,因此接入项目非常的简单,而且可以正常上架,无需考虑150M包大小的限制。


三、使用Google的分发模式(AAB + Asset Pack)


   这是Google官方之前针对aab包提供的默认方式,而且通过官方的介绍文档可以知道这种方式提供了CDN,如果完全接入后可以免去自己搭建CDN的环境。


Play Asset Delivery (PAD) 将 app bundle 的优势带到游戏中。它允许超过 150 MB 的游戏替换旧版扩展文件 (OBB),方法是将包含游戏所需的所有资源的单个工件发布到 Play。PAD 提供了灵活的分发模式、自动更新、压缩和增量修补功能,并且可免费使用。使用 PAD,所有资源包均在 Google Play 上托管和提供,因此您无需使用内容分发网络 (CDN) 向玩家提供游戏资源。


   打包步骤:


       1. 下载插件com.google.play.assetdelivery,并导入Unity(这里可能也需要下载步骤二的插件)。


       2. 通过菜单Google->Android App Bundle->Asset Delivery Settings... 打开配置界面(如图2展示)。


       3. 【注意】这次不勾选Separate Base APK Asset选项,而是通过下面的Asset Pack Configuration界面进行Asset Bundle配置。


       4. 点击Add Folder...按钮选择项目的Asset Bundle文件目录。


           a.【注意1】这里不能将Asset Bundle文件放在StreamingAssets目录。


           b.【注意2】Asset Bundle文件的总数不得超过50个


           c.【注意3】这里针对Asset Bundle的命名也有要求,类似代码变量名。


         【备注】 针对超过50个Asset Bundle的可以使用AssetPack,就是先将Asset Bundle使用Google提供的API方法打成AssetPack(该方法可用,但未测试过)。


       5. 针对每个Asset Bundle文件设置其分发模式,最简单就全部设置为Install Time模式(如下图4)。


       6. 设置完成后再通过Google->Build Android App Bundle...即可打成aab包,里面的内容可以通过解压软件打开查看(如图5)。


微信图片_20220424144416.jpg

图4


微信图片_20220424144420.jpg

图5



四、总结和另外的注意事项。    

                                                          微信图片_20220424144423.png

图6


   上图是某次上架测试过程中的错误提示(需注意API等级)。若参照我上面提供的三种方式且满足Google的上架条件,基本上可以正常上架。另外,如果使用方法三进行aab打包的话,还需要额外针对加载Asset Bundle文件的方法进行修改,不可使用AssetBundle.LoadFromXXX的方法,需要导入 Play Asset Delivery 库,然后调用 RetrieveAssetBundleAsync() 方法加载 AssetBundle(可去官网查看例子)


   大体的内容就介绍到这里,如果还有疑问欢迎一起沟通交流,我也是菜鸟一枚。另外使用的Unity是2018.4f和2019.3f都可以使用,其他的未测试。


欢迎微信搜索"游戏测试开发"关注一起沟通交流。

相关文章
|
编解码 iOS开发 开发者
App上架Apple App Store和Google Play流程
App上架Apple App Store和Google Play流程
504 2
|
3月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
213 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
10月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
316 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
11月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
380 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
12月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
1281 11
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
1547 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
5150 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
304 0
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
384 0
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
841 0

热门文章

最新文章