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

文章目录

  • 1.打包AAB
    • [1.1 使用Unity3D自带功能打aab包](#1.1 使用Unity3D自带功能打aab包)
    • [1.2 使用Google提供的插件(新增)](#1.2 使用Google提供的插件(新增))
    • [1.3 使用Google的分发模式(AAB + Asset Pack)](#1.3 使用Google的分发模式(AAB + Asset Pack))
    • [1.4 总结和另外的注意事项](#1.4 总结和另外的注意事项)
  • 2.在手机/模拟器上安装AAB包
    • [2.1 AAB ---> APKS](#2.1 AAB ---> APKS)
    • [2.2 手机/模拟器上安装](#2.2 手机/模拟器上安装)

1.打包AAB

1.1 使用Unity3D自带功能打aab包

图1:

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

1.2 使用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包。

图2:

图3:

【注意】只需要将打好的Asset Bundle文件拷贝的StreamingAssets目录即可。这也是正常打APK包需要的步骤,因此接入项目非常的简单,而且可以正常上架,无需考虑150M包大小的限制。

1.3 使用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文件目录。
    • 【注意1】这里不能将Asset Bundle文件放在StreamingAssets目录。
    • 【注意2】Asset Bundle文件的总数不得超过50个。
    • 【注意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)。

图4:

图5:

1.4 总结和另外的注意事项

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

2.在手机/模拟器上安装AAB包

2.1 AAB ---> APKS

使用GooglePlay的bundletool工具:

下载连接:https://github.com/google/bundletool

官方文档:https://developer.android.com/tools/bundletool?hl=zh-cn

进入工具目录,使用下面命令:

bash 复制代码
java -jar bundletool-all-1.18.3.jar build-apks \
  --bundle=zero_x86.aab \
  --output=zero_x86.apks \
  --mode=universal \

2.2 手机/模拟器上安装

安装到MuMu模拟器:

  1. MuMu模拟器连接adb:https://mumu.163.com/help/20230214/35047_1073151.html
  2. 安装到 Mumu 模拟器:
bash 复制代码
java -jar bundletool-all-1.18.3.jar install-apks --apks=zero_x86.apks
相关推荐
花卷HJ2 小时前
Android 通用 RecyclerView Adapter 实现(支持 ViewBinding + 泛型 + 点击事件)
android
oMcLin2 小时前
如何在Ubuntu 22.04 LTS上配置并优化MySQL 8.0分区表,提高大规模数据集查询的效率与性能?
android·mysql·ubuntu
幸福的达哥3 小时前
安卓APP代码覆盖率测试方案
android·代码覆盖率
佛系打工仔3 小时前
绘制K线入门
android
川石课堂软件测试4 小时前
Android和iOS APP平台测试的区别
android·数据库·ios·oracle·单元测试·测试用例·cocoa
花卷HJ5 小时前
Android 通用 BaseDialog 实现:支持 ViewBinding + 全屏布局 + 加载弹窗
android
生产队队长5 小时前
Linux:awk进行行列转换操作
android·linux·运维
叶羽西5 小时前
Android15 EVS HAL中使用Camera HAL Provider接口
android
2501_915918415 小时前
除了 Perfdog,如何在 Windows 环境中完成 iOS App 的性能测试工作
android·ios·小程序·https·uni-app·iphone·webview