【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
相关推荐
阿巴斯甜4 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker4 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95275 小时前
Andorid Google 登录接入文档
android
黄林晴7 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab19 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android