七彩极 发表于 2022-8-14 19:17

发布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]
查看完整版本: 发布GooglePlay 踩坑记录