Unity打包安卓aab包,上传一个超过150M的aab包到谷歌商店的办法

Unity PlayAssetDelivery教程:轻松实现大包热更新
本文介绍如何在Unity 2018版本中利用PlayAssetDelivery (PAD)进行资源模块打包,包括创建新模块、配置gradle文件、移动资源及测试流程,以解决大包上传审核问题。

Play Asset Delivery

什么是Play Asset Delivery(PAD)请大家自行上网查找,网上有很多详细介绍,
例如

https://blog.csdn.net/g984160547/article/details/119328718

我在这里就不过多介绍了。

简单来说就是这种设置方式,就是让资源(例如可以进行热更新的一些prefabs)放到一个新的模块里面,这样打包出来的aab包即使大于150M,也可以被上传到谷歌商店审核。

踩坑过程

首先,PAD这种打包方式Unity是有插件可以帮助我们完成的,获取途径点击上方连接,文章里面也有详细获取方式和设置方法。我也尝试试过用这款插件去打包,不知道是不是我的U3D版本太旧(2018)导致使用不了这个插件(有成功的大佬们可以交流一下),然后我就只能导出项目到Android Studio那边进行PAD设置,以下为详细过程。

踩坑过程 - 在AS创建新模块

在主目录下右键创建一个新的Module
在这里插入图片描述
选择第二个,然后把模块的名字改为 install_asset_pack,点击finish
在这里插入图片描述
然后在这个模块下的main文件夹,创建一个Directory,名字为assets.

在这里插入图片描述

踩坑过程 - 配置install_asset_pack的build.gradle文件

注意:这里配置的是install_asset_pack的build.gradle,别配置主程序的gradle或者其他模块的gradle

在install_asset_pack的build.gradle里面加上这段代码

apply plugin: 'com.android.library'
apply plugin: 'com.android.asset-pack'

assetPack {
    // pack 的名字,需要与module名称一致,建议只用英文+下划线命名
    packName = "install_asset_pack" // Directory name for the asset pack
    dynamicDelivery {
        // 指定安装时加载assets
        deliveryType = "install-time"
    }
}

最终效果如图,至于gradle里面是其他代码段,例如android,dependencies这些都没改动,都是创建时候的默认状态
在这里插入图片描述

踩坑过程 - 配置主模块的build.gradle

找到自己项目的主build.gradle,
(1)在主gradle的dependencies模块下添加 implementation "com.google.android.play:core:1.10.0"
(2)在主gradle的 android模块下添加 assetPacks = [":install_asset_pack"]

查看settings.gradle,是否有 include ':install_asset_pack' ,如果没有请加上。

踩坑过程 - 配置Gradle Version

在AS右上角点击这个图标
在这里插入图片描述

输入图里的版本信息
在这里插入图片描述
至于其他版本我没有试验过行不行,如果有大佬尝试过,还有其他版本也可以使用的话,留个言,交流下。
至此,配置方面完全弄好了

踩坑过程 - 移动资源

还记得文章开头在新模块下的asset文件夹吗?
把资源移动到asset文件里面,注意:unity导出的项目里面的assets文件下的bin.data不能移动到新的asset下面,不然运行的时候报错
在这里插入图片描述
移动完成之后就可以打包测试,本人测试过,程序运行没异常,而且热更新也可以正常使用

### Unity 打包 AAB 文件的作用 Android App Bundle (AAB) 是一种新型的应用程序发布格式,旨在优化应用的分发过程。通过使用 AAB 格式,Google Play 能够生成针对每台设备特定配置的最佳 APK,从而减少最终用户的下载大小并提高安装效率[^1]。 当在 Unity 中创建 AAB 文件时,其主要目的是满足 Google Play 的最新要求,并支持更高效的分发机制。如果项目中的资源较大(例如超过 150MB),则建议结合 Android App Bundle 和 Play Asset Delivery (PAD) 技术来管理大文件资源[^4]。 --- ### 处理 Unity 打包 AAB 文件的方法 #### 方法一:直接通过 Unity 导出 Unity 提供了内置的功能用于构建 AAB 文件。开发者可以在 Build Settings 中选择 `Build` 或者 `Export Project to Gradle` 来完成此操作。然而,在某些情况下,尤其是涉及复杂资源配置时,这种方式可能不够灵活。 #### 方法二:导出 AS 工程后再打包 为了更好地控制打包流程,推荐将 Unity 项目导出到 Android Studio 并手动调整设置后重新编译。这种方法允许开发人员自定义依赖项、修改 build.gradle 配置以及其他高级选项。 #### 注意事项 - **AB 路径问题** 在处理 asset bundle (AB) 文件时需注意它们的位置安排。所有 AB 文件应放置在同一目录下;否则可能会因嵌套结构而导致错误发生[^2]。 - **插件集成** 使用官方提供的工具如 GitHub 上托管的 *play-unity-plugins* 可简化接入 Google Play 功能的过程,比如 IAP 支持等[^3]。 以下是简单的脚本示例展示如何检测当前平台是否为安卓: ```csharp using UnityEngine; public class PlatformCheck : MonoBehaviour { void Start() { if(Application.platform == RuntimePlatform.Android){ Debug.Log("This is an Android platform."); } } } ``` --- ### 总结 综上所述,理解 AAB 文件的意义及其背后的工作原理有助于改善应用程序性能表现及用户体验质量。同时按照上述指导方针妥善解决可能出现的技术难题能够保障项目的顺利推进。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值