No matching client found for package name ‘com.unity3d.player‘

2024年2月5日更新

        下面的一系列操作最终可能都无用,大致这问题出现原因是我在Unity采用了Android方式接入Firebase,而Android接入实际上和Unity接入方式有配置上的不一样,我就是多做了几步操作如下。https://firebase.google.com/docs/android/setup?hl=zh-cn#java

 

        根级(项目级)Gradle文件 和 模块(应用级)Gradle文件 对应Unity的 baseProjectTemplate.gradle 以及 mainTemplate.gradle,分别对应地方加上如上内容,结果就是bug不断,因为Unity以前mainTemplate.gradle就是apply plugin: 'com.android.application',现在新版已经改为‘com.android.library’,因此就变的有点复杂不过我没注意到,就这样配进去了,打包就肯定出问题,Unity的application已经放置到了launcherTemplate.gradle。
        总结:不要试图在Unity使用Android接入配置方法,更深层的知识没搞懂前很难兼容处理好,最终就是彻底采用Unity方式或Android方式接入。
        实际上,我想Firebase即接入Unity插件,也接入Android(aar形式接入Unity打包的)其实也可以吧?将上方的配置转移到Android配置,单独作为提供给第三方的,而Unity则是完全使用Unity插件方式接入Firebase即可。(待测试)

Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':unityLibrary:processReleaseGoogleServices'.
> No matching client found for package name 'com.unity3d.player'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

UnityEngine.GUIUtility:ProcessEvent (int,intptr)
 

一、根本原因:google-services.json里的package_name和包签名不一致

"client": [{"client_info": {"mobilesdk_app_id": ...,"android_client_info": {"package_name": "填对包签名"}}

二、一般这样就好了,但是我是Unity版本的变种问题,Unity需要将google-services.json放到对应Assets/Plugins/Android文件夹下,然后Firebase会自动生成一个到StreamingAssets下,最终也是采用StreamingAssets下的作为配置读取。

 注意:Firebase 会查找您添加到 Unity 项目的移动平台 Firebase 配置文件(GoogleService-Info.plist 或 google-services.json)。然后,Firebase 会基于移动平台配置文件自动生成桌面平台 Firebase 配置文件 (google-services-desktop.json)。此桌面配置文件包含您在 Firebase 控制台设置工作流中输入的 Unity 项目 ID。此文件将您的应用与 Firebase 项目关联。

如果编辑器找不到桌面配置文件,请检查 StreamingAssets 目录是否存在以及其中是否包含桌面配置文件。

也就是说你去工程里搜google-services-desktop.json,把它重新生成一遍就好了,也就是删了它,重新运行Unity就会自动生成,生成出的package_name就是你最新的包签名了。(真的是...

三、而且google-services.json依然是需要的,而且它要正确地拷贝到打包出的安卓工程,需要在mainTemplate.gradle末尾添加(一定保证末尾)

task copyJsonFile {def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")copy {		delete("google-services.json")from(unityProjectPath + '/Assets/Plugins/Android/')into('./')include("google-services.json")}
}
preBuild.dependsOn copyJsonFile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453490.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 构建个人博客网站

1、项目地址 https://gitee.com/hhll/blog-hangliang.git 2、打包docker镜像并上传docker hub 【1】注册docker hub账号https://hub.docker.com/ 【2】在docker hub建对应的仓库 【3】登录docker hub并打包上传前后端镜像 sudo docker login -u xxxx 密码 xxxxxx 后端&am…

【HarmonyOS应用开发】APP应用的通知(十五)

相关介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应用,通知主要有以下使用场景: 显示接收…

两种方式实现文本超出指定行数显示展开收起...

需要实现这样一个功能 默认高度下文本超出隐藏&#xff0c;点击展开可查看所有内容&#xff0c;点击收起可折叠 方法一&#xff1a;通过html和css实现 代码部分 html:<div className"expand-fold"><input id"check-box" type"checkbox&qu…

2024 Google Chrome 浏览器回退安装旧版本

2024 Google Chrome 浏览器回退安装旧版本 查看当前谷歌版本备份浏览器数据卸载浏览器双击重新安装旧版本浏览器 查看当前谷歌版本 详细参考&#xff1a;参考 笔记&#xff1a;最近谷歌浏览器更新后&#xff0c;用着总感觉别扭&#xff1a;不习惯 备份浏览器数据 &#xff…

c语言--assert断言(详解)

目录 一、断言的概念二、assert断言2.1 代码12.1.1运行结果2.1.2分析 2.2代码22.2.1运行结果2.2.2分析2.3代码32.3.1运行结果及其分析 三、优点四、缺点五、注意 一、断言的概念 assert.h 头⽂件定义了宏 assert() &#xff0c;用于在运行时确保程序符合指定条件&#xff0c;如…

【Docker】Docker Registry(镜像仓库)

文章目录 一、什么是 Docker Registry二、镜像仓库分类三、镜像仓库工作机制四、常用的镜像仓库五、常用命令镜像仓库命令镜像命令(部分)容器命令(部分) 六、docker镜像仓库实战综合实战一&#xff1a;搭建一个 nginx 服务综合实战二&#xff1a;Docker hub上创建自己私有仓库综…

STM32单片机的基本原理与应用(六)

串口测试实验 基本原理 在串口实验中&#xff0c;是通过mini_USB线搭建终端与电脑端&#xff08;也可称终端&#xff0c;为做区分称电脑端&#xff09;的“桥梁”&#xff0c;电脑端的串口调试助手通过mini_USB线向终端发送信息&#xff0c;由CH340芯片将USB接口进行转换&…

【npm】修改npm全局安装包的位置路径

问题 全局安装的默认安装路径为&#xff1a;C:\Users\admin\AppData\Roaming\npm&#xff0c;缓存路径为&#xff1a;C:\Users\admin\AppData\Roaming\npm_cache&#xff08;其中admin为自己的用户名&#xff09;。 由于默认的安装路径在C盘&#xff0c;太浪费C盘内存啦&#…

从零开始手写mmo游戏从框架到爆炸(二)— 核心组件抽离与工厂模式创建

上一章我们已经完成了一个基本netty的通信&#xff0c;但是netty的启动很多代码都是重复的&#xff0c;所以我们使用工厂模式来生成不同的ServerBootstrap。 首先创建一个新的组件core组件&#xff0c;和common组件&#xff0c;主要用于netty通信和工具类&#xff0c;从server…

react将选中本文自动滑动到容器可视区域内

// 自动滚动到可视区域内useEffect(() > {const target ref;const wrapper wrapperRef?.current;if (target && wrapperRef) {const rect target.getBoundingClientRect();const wrapperRect wrapper.getBoundingClientRect();const isVisible rect.bottom &l…

自学Java的第十九天

一&#xff0c;每日收获 1.排序 2.冒泡排序法 3.查找 4.多维数组-二维数组 二&#xff0c;新名词与小技巧 三&#xff0c;今天学习中所遇到的困难 一&#xff0c;每日收获 1.排序 ① 排序的介绍 排序是将多个数据&#xff0c;依指定的顺序进行排列的过程。 ② 排序的…

85.如何设计高并发系统(缓存、限流、熔断、降级)

文章目录 一&#xff1a;简介二&#xff1a;什么是高并发1、高并发的定义2、高并发的特点3、高并发场景和应用4、高并发的影响 三&#xff1a;高并发应对策略四&#xff1a;缓存1、浏览器缓存2、客户端缓存3、CDN缓存4、反向代理缓存5、本地缓存6、分布式缓存7、缓存问题8、缓存…