unity3d Unity/Firebase -项目包ID与google-services.json文件中的任何包ID都不匹配

ltqd579y  于 2022-11-15  发布在  Go
关注(0)|答案(6)|浏览(320)

我正在Unity上做一款移动的游戏,首先是Android。
现在我正在整合火力分析。
在Firebase控制台上设置信息并将google-services.json文件放入Unity项目后,Unity显示错误消息:

Project Bundle ID com.RetroSpirit.ToiletRush does not match any bundle IDs in your google-services.json files
This will result in an app that will fail to initialize.

Available Bundle IDs:

You need to either:
* Fix your app's bundle ID under "Player Settings --> Bundle Identifier"
or:
* Add another app to your firebase project
  Goto https://firebase.google.com/docs/unity/setup#add_firebase_to_your_app_1
  and add the new configuration file to your project.

UnityEngine.Debug:LogError(Object)
Firebase.Editor.GenerateXmlFromGoogleServicesJson:LogErrorIfEnabled(String)
Firebase.Editor.GenerateXmlFromGoogleServicesJson:FindGoogleServicesFile(SortedDictionary`2, String, LogMessage, LogMessage)
Firebase.Editor.GenerateXmlFromGoogleServicesJson:FindGoogleServicesFile(String, LogMessage, LogMessage)
Firebase.Editor.GenerateXmlFromGoogleServicesJson:UpdateJson(Boolean, LogMessage, LogMessage)
Firebase.Editor.GenerateXmlFromGoogleServicesJson:OnPostprocessAllAssets(String[], String[], String[], String[])
UnityEditor.AssetPostprocessingInternal:PostprocessAllAssets(String[], String[], String[], String[], String[])
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

这是google-services.json的一部分

"client": [
    {
      "client_info": {
        "mobilesdk_app_id": "*:***********:android:****************",
        "android_client_info": {
          "package_name": "com.RetroSpirit.ToiletRush"
        }
      },
      "oauth_client": [
        {
          "client_id": "***********-********************************.apps.googleusercontent.com",
          "client_type": 1,
          "android_info": {
            "package_name": "com.RetroSpirit.ToiletRush",
            "certificate_hash": "****************************************"
          }

我不知道该查什么。
项目捆绑包ID(构建设置-其他设置-标识上的包名称)与google-services.json中的package_names完全相同。
有什么想法吗?

holgip5t

holgip5t1#

我自己回答有点好笑......
我无意中发现了问题的原因。我的VC运行时有问题,所以generate_xml_from_google_services_json.exe无法从google-services.json中提取包名。(vc90.crt.manifest无法提取!)
不幸的是,我无法修复运行时错误,尽管有这么多的Visual Studio,VC运行时和.net框架重新安装.最后,我重新安装Windows 10和问题就消失了...仍然不知道是什么导致了这个错误.

4ktjp1zp

4ktjp1zp2#

我知道你已经通过重新安装Windows修复了这个问题,但这就是我如何通过这个问题的情况下,其他人遇到这个:
请确保您已在Unity播放器设置中设置了包名称(编辑〉项目设置〉播放器〉其他设置〉标识〉包名称)。
设置为与您在Firebase中设置的相同(看起来像com.CompanyName.ProductName)。
确保您已将Firebase资源导入到Unity项目中(如此处所述https://firebase.google.com/docs/unity/setup),并且Firebase文件夹位于Assets〉Firebase中。更改此文件夹的位置似乎会导致中断。

sshcrbum

sshcrbum3#

在我们的案例中,我们通过向拥有管理员权限的同事请求一个新的google-services.json文件来解决这个问题。

ie3xauqp

ie3xauqp4#

我的案例是在Unity中,为了修复它,我从firebase项目中添加了google-services.json到assets文件夹中。

thtygnil

thtygnil5#

在我的例子中,问题出在包名上。所以我按照以下步骤解决了这个问题:
1.更改软件包名称(com.companyname.appname)[所有内容均为小写]
1.删除现有密钥库
1.添加新密钥库并使用Keytool生成指纹
1.从Firebase控制台删除当前应用程序
1.使用正确的软件包名称和生成的指纹添加新应用
1.再次下载google-services.json并导入到Assets文件夹下的Unity
成功了!成功了!!

n6lpvg4x

n6lpvg4x6#

大家好,我找到了一个解决这个问题的方法,我正在使用mac pro m1
修复步骤

  • 重新安装Visual Studio
  • 从Visual Studio网站下载Microsoft.NET.Sdk.Android
  • 重新启动项目

之后它会修复

相关问题