由于项目需要接入Firebase Analysis 埋点,按照官方文档下载了SDK,11.7 导入了FirebaseAnalytics.unitypackage.
本来一切进展顺利,写好测试代码导出安卓工程发布APK都没问题,结果一运行app的时候就报这个错, 一开始以为google-services.json没有keystore的SHA1指纹,然后打印出SHA1去谷歌后台绑定应用,重新下载了这个文件,结果还是不行,遂对比了一下绑定了指纹的文件跟没绑定指纹的文件包含的数据居然一模一样,还以为是网站延迟刷新的问题,等了个把小时再刷新下载下来的还是一样,就继续查资料.
keytool 打印 keystore的SHA1指纹CMD命令 : keytool -list -v -keystore c:\server.jks
PS : 如果要输入秘钥,输入的时候不会像普通输入一样有字符显示在输入框里的, 输入完了密码直接回车就行.
关于这个报错,官方文档里有说明,情况确实是这个情况,但是导入的插件并没有帮我生成Assets/Plugins/Android/Firebase这个目录,所以也没法修改后缀.
地址:https://firebase.google.com/docs/unity/troubleshooting-faq?hl=zh-cn
最后查了n多资料,终于解决这个问题了,由于查到的每个可能解决问题的步骤我都操作了,所以还不确定最精简的解决办法,后面会补充,目前记得的步骤是:
参考链接: https://m.blog.naver.com/PostView.naver?blogId=cra2yboy&logNo=222452806290&proxyReferer=
1.将Firebase网站下载到的google-services.json文件(文档里说放在Asset下的任意目录,建议丢在Asset根目录下),文件后缀改为google-services.desktop然后再关闭工程然后打开
2.打开工程,你会发现StreamAssets目录下居然多了一个google-services-desktop.json文件,和一份google-services.json文件,另外这个Assets/Plugins/Android/目录居然也神奇的有了Assets/Plugins/Android/Firebase,而且后缀也是.androidlib的,并且里面有文件,这样问题基本就解决了.
3.可能会报一个有多个google-services.json的白色debug,那就把之前丢进根目录的google-services.desktop删掉,只保留StreamAssets目录下的即可.
4.另外调用埋点也不能直接调 ,需要先检查一下谷歌服务版本是否符合需求,然后再设置一下,最后才能调用埋点事件,否则报Unity Firebase Invites throws exception ApplicationException: internal::IsInitialized()这个问题.
代码示例: