发布GooglePlay 踩坑记录
[*]接入准备 下载JDK 下载地址
https://www.oracle.com/java/technologies/downloads/#jdk18-windows
接入文档 https://www.quicksdk.com/doc-516.html 基本根据这个文档走就行
隐私链接 免费地址 https://app-privacy-policy-generator.firebaseapp.com 可以根据应用名称免费生成和部署隐私链接
点击箭头操作就行
踩坑:
1.SDK相关
2.优先使用已经设置好的游戏包名 如com.mobhuge.magicfantasy发一个小的.aab(bundle)文件 对应Unity的设置为
3.同时需要设置好签名:
签名生成工具:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
生成完成后提交到
4.特殊符号问题 及其它注意事项
android.bundle.enableUncompressedNativeLibs=true
5.Gradle 版本问题
对照子版本 将版本改成具体版本
解决方法一:安卓工程
解决方法二:更改Unity模板文件
6.Unity3D.Player.UnityPlayerActivity 冲突
使用不带2019的版本
7.Layout 文件夹下xml 文件冲突
解决方法gradle 下添加 implementation 'androidx.cardview:cardview:1.0.0'
[*]DownLoad ServerConfig Error Unable to complete SSL connection url xxxxxxxx
可能是VPN问题 目前解决方案是将服务器放在了海外
[*]包名注意事项出包路径不要包含中文 包名不要含有空格或者特殊字符
[*]aab 文件转 apks 及apks安装
在当前目录下进行CMD
java -jar bundletool-all-1.7.1.jar build-apks --bundle=MagicFantasyAndroidBUSINESS_2022_07_08_14_32_7.7.7.aab --output=MagicFantasyAndroidBUSINESS_2022_07_08_14_32_7.7.7.apks --ks=foo.keystore --ks-pass=pass:9r65uy --ks-key-alias=aiq61j --key-pass=pass:pj9s44
在当前目录下进行CMD
java -jar bundletool-all-1.7.1.jar install-apks --apks=MagicFantasyAndroidBUSINESS_2022_07_08_14_32_7.7.7.apks
[*]google aab文件大于150M
https://gradle.org/releases/
配置好路径
以上这种方式只能buildAPk 针对上架Google商店不适用
11.1对.aab文件分包解决方案
Unity插件:https://github.com/googlecodelabs/unity-gamepad.git
纯指导教程:https://developer.android.com/codelabs/unity-gamepad#1z
中文构建指导:
https://developer.android.com/guide/app-bundle/asset-delivery/build-unity#next-step-instructions
https://developer.android.com/guide/playcore/asset-delivery/integrate-unity?language=plugin#asset-type
大致思路:将资源打包成AssetBundle 然后对AssetBundle 进行分类:(资源的分类思路可以在自己做资源管理的时候提供参考 Assetbundle必须以字母开头,并且只能包含字母、数字和下划线)
Install-time:嵌入在程序包里面的
Fast-follow:在应用程序安装时快速自动下载的
On-demand:一开始不会下载,直到有对应的下载请求是才下载的
11.2操作:UI配置
点击AddFloder 选择AssetBundle存在的文件夹 (不要删除.manifest文件和加密 否则无法识别),对具体的AssetBundle文件进行设置类型(Install-time、Fast-follow、On-demand)
https://www.cnblogs.com/jeffxun/p/15142855.html
只需要将打好的Asset Bundle文件拷贝的StreamingAssets目录即可。这也是正常打APK包需要的步骤,因此接入项目非常的简单,而且可以正常上架,无需考虑150M包大小的限制。
11.3操作:代码配置
public void ConfigureAssetPacks {
// Creates an AssetPackConfig with a single asset pack, named
// examplePackName, containing all the files in path/to/exampleFolder.
var assetPackConfig = new AssetPackConfig();
assetPackConfig.AddAssetsFolder("examplePackName","path/to/exampleFolder",AssetPackDeliveryMode.OnDemand);
// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App Bundle.
AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
BuildBundle(new buildPlayerOptions(), assetPackConfig);
}
11.4 资源加载
具体API:https://developer.android.com/guide/playcore/asset-delivery/integrate-unity?language=plugin#asset-type
12 GooglePlay游戏服务相关配置
https://developers.google.com/games/services/android/quickstart#step_1_download_the_sample_app
13 Google Cloud Platform 角色权限配置
14 Google 测试用户登录问题 403 access_denied
添加的测试用户 不能够被删除 注意不要添加不可被识别或者不可靠的
15 支付
16 Facebook 登录注意事项
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
keytool -exportcert -alias aiq61j -keystore "D:\GoogleJarReference\foo.keystore" | openssl sha1 -binary | openssl base64
使用测试用户登录
17.firebase 接入踩坑
https://maven.google.com 大部分库都可以在这里下载到 aar文件
方法数量超过64K问题解决
trouble writing output:
Too many field references: 131000; max is 65536.
You may try using --multi-dex option.
解决方法一 (舍弃部分Android5.0一下的用户约2%) 将发布安卓的MinimumAPILevel 设成21
解决方法二 https://developer.android.com/studio/build/multidex (自己尝试了但未成功)
[*]aar和工程class aar冲突
解决方法:
19.息屏问题
1.
2主Activity 添加Them配置 valuse下添加syles.xml文件
上面的布局有个缺陷 就是无法去除刘海屏 解决方法:套用Unity 官方的布局
https://zhuanlan.zhihu.com/p/545822077
20启动有短暂横屏问题
主要思路是改变主activity的横竖屏
21.Google商店配置信息设置
22.gradle inited fail
检查C盘是否满了
24 GooglePlay 登录需要Play游戏服务处于发布状态
25 facebook 开发者无法确认 app-ads.txt问题
facebook要是上线状态 谷歌链接如果没有开放注册或者开放测试,是无法访问的
[*]内存无限上涨问题
因为英雄残影不断开辟内存创建mesh,导致重复产生1.7M的mesh网格数据,同时也因为在面板中将mesh的GameObject隐藏了,导致无法肉眼可见的定位到问题。
解决方法:使用残影对象池对残影进行重复利用
总结
使用Unity接入SDK应该新建一个或者多个工程去做接入demo,这样修改和发布和测试都十分简便 大大减少时间和试错成本
页:
[1]