【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
相关推荐
2601_963771374 小时前
Offloading WP-Cron and Securing Ticket Webhooks on Enterprise IT Sites
android
花燃柳卧5 小时前
跨平台路由组件工程源码补充上传
android·flutter·kotlin
apihz5 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
宸翰6 小时前
uni-app 设置 Android 底部虚拟导航栏背景色
android·前端·uni-app
TechNomad6 小时前
Kotlin类对象与接口详解
android·kotlin
QiLinkOS11 小时前
QiLink OS的失败数据共享平台的运作模式是否适用于所有行业?
android·开发语言·人工智能·算法·重构·开源
杉氧11 小时前
Framework 补完计划 (2):BufferQueue 与 SurfaceFlinger —— 像素的跨进程“接力赛”
android·架构·android jetpack
牢七11 小时前
RCE?复现成功
android
一化十11 小时前
Android16 自定义全局手势 任意界面依次点击屏幕四个角返回Home界面
android
三少爷的鞋13 小时前
Android 面试系列:Kotlin 协程的 delay 到底发生在哪个线程?
android