【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
相关推荐
2603_9494621011 小时前
Flutter for OpenHarmony社团管理App实战:预算管理实现
android·javascript·flutter
王泰虎12 小时前
安卓开发日记,因为JCenter 关闭导致加载不了三方库应该怎么办
android
2601_9495430116 小时前
Flutter for OpenHarmony垃圾分类指南App实战:主题配置实现
android·flutter
2601_9498333917 小时前
flutter_for_openharmony口腔护理app实战+知识实现
android·javascript·flutter
晚霞的不甘17 小时前
Flutter for OpenHarmony从基础到专业:深度解析新版番茄钟的倒计时优化
android·flutter·ui·正则表达式·前端框架·鸿蒙
鸟儿不吃草18 小时前
android的Retrofit请求https://192.168.43.73:8080/报错:Handshake failed
android·retrofit
Minilinux201818 小时前
Android音频系列(09)-AudioPolicyManager代码解析
android·音视频·apm·audiopolicy·音频策略
李子红了时18 小时前
【无标题】
android
Android系统攻城狮19 小时前
Android tinyalsa深度解析之pcm_close调用流程与实战(一百零四)
android·pcm·tinyalsa·音频进阶·音频性能实战·android hal
weixin_4111918419 小时前
LifecycleEventObserver和DefaultLifecycleObserver使用
android