Unity Android AAB包GooglePlay上线备忘

server/2025/1/13 15:02:44/

aab

GooglePlay要求新上线的App必须使用aab格式提交,在Unity Build Settings中勾选Build App Bundle 选项即可;或者在代码中设置:

EditorUserBuildSettings.buildAppBundle = true;

安装测试

https://developer.android.com/tools/bundletool?hl=zh-cn

下载bundleTool工具jar包,使用以下命令生成apks文件:

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd

使用以下命令进行安装:

bundletool install-apks --apks=/MyApp/my_app.apks

targetAPI 33

GooglePlay要求App targetAPI Level必须大于等于33,而Unity 2022.3版本默认auto选项是32版本,这里需要手动将PlayerSetting中的Target API Level选择为API level33。

上传证书的密钥强度太低

这并不是签名的密码太简单,而是旧签名文件的密钥是1024位,现在要求2048位以上。使用keytool命令重新创建keystore,注意选择密钥2048位。

💡 另外:密钥库类型建议升级为PKCS12

您的App Bundle包含的以下配置会使应用的初始安装大小超过200MB

GooglePlay要求aab的base部分不能超过200MB,解决该问题需要使用Play Asset Delivery。

https://docs.unity3d.com/2022.3/Documentation/Manual/android-asset-packs-set-up.html

Unity中处理很简单,只需要:

  1. 勾选Build App Bundle选项;
  2. 在PlayerSetting/Other Settings中,勾选Split Application Binary选项。

解决打包报错

再打包,可能会报错类型重复,例如:

Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in
modules core-1.0.0-runtime                (androidx.core:core:1.0.0)
and
jetified-androidx.core.core-1.2.0-runtime (androidx.core.core-1.2.0)

看起来依赖库重复包含了,找了一些解决方法,比如:exclude部分包,结果会出现运行时错误。

对于Unity 2022.3.0f版本,最简单有效的解决方法如下:

https://github.com/firebase/firebase-unity-sdk/issues/661#issuecomment-1803420952

the fix from Unity that works for me (I use only GooglePlayGames and GoogleMobileAds plugins):

1 - clean up all aar and jar files and also their metafiles from Assets/Plugins/Android folder
2 - delete Library/Bee/Android/Prj/IL2CPP/Gradle folder
3 - open project
4 - check that Custom Main Gradle Template, Custom Gradle Settings Template, Custom Gradle Properties Template are turned on in Player settings
5 - run Assets/Eternal Dependency Manager/Android Resolver/Resolve (it should end immediately, there should be no new files in Assets/Plugins/Android appear)
6 - build AAB


http://www.ppmy.cn/server/158014.html

相关文章

力扣 岛屿数量

从某个点找,不断找相邻位置。 题目 岛屿中被“0”隔开后 ,是每一小块状的“1”,本题在问有多少块。可以用dfs进行搜索,遍历每一个点,把每一个点的上下左右做搜索检测,当检测到就标记为“0”表示已访问过&a…

在windows系统上安装docker并自定义安装和数据存储位置

首先在官网下载docker ,Desktop Installer.exe 点击安装默认安装在C盘,存储也在C盘,极为的不方便 查看官方文档可以使用命令行安装,也方便自定义安装目录和存储位置,具体的大家可以翻阅文档 以管理员身份打开power Shell &…

《零基础Go语言算法实战》 【题目 1-15】字符串的比较

《零基础Go语言算法实战》 【题目 1-15】字符串的比较 请用 Go 语言实现一个算法,在不使用额外存储结构的条件下判断一个字符串的所有字 符是否全都相同,字符串的长度不能超过 3000。 【解答】 ① 思路。 本题需要实现一个算法来判断字符串中的所有…

C语言之结构体

欢迎拜访:雾里看山-CSDN博客 本篇主题:C语言之结构体 发布时间:2025.1.11 隶属专栏:C语言 目录 结构体类型的声明结构体的自引用结构体变量的定义和初始化结构体成员访问结构体传参结构体内存对齐(重要部分)结构体对齐的规则常见结…

如何用 ESP32-CAM 做一个实时视频流服务器

文章目录 ESP32-CAM 概述ESP32-S 处理器内存Camera 模块MicroSD 卡槽天线板载 LED 和闪光灯其他数据手册和原理图ESP32-CAM 功耗 ESP32-CAM 引脚参考引脚排列GPIO 引脚哪些 GPIO 可以安全使用?GPIO 0 引脚MicroSD 卡引脚 ESP32-CAM 的烧录方式使用 ESP32-CAM-MB 编程…

苹果手机(IOS系统)出现安全延迟进行中如何关闭?

苹果手机(IOS系统)出现安全延迟进行中如何关闭? 一、设置二、隐私与安全性三、失窃设备保护关闭 一、设置 二、隐私与安全性 三、失窃设备保护关闭

#Uniapp: uniapp国际化适配

uniapp国际化适配 插件安装 npm i vue-i18n9.1.9根目录下新建locales文件目录 import Vue from vue; import VueI18n from vue-i18n; import zhCN from ./lang/zh-CN; import enUS from ./lang/en-US;// 获取默认语言 export const defaultLang uni.getStorageSync(language…

“多维像素”多模态雷视融合技术构建自动驾驶超级感知能力|上海昱感微电子创始人蒋宏GADS演讲预告

2025年1月14日,第四届全球自动驾驶峰会将在北京中关村国家自主创新示范区展示交易中心-会议中心举行。经过三年的发展,全球自动驾驶峰会已经成长为国内自动驾驶领域最具影响力、规模最大的产业峰会之一。在主会场下午的城市NOA专题论坛上,上海…