Unity / Firebase - Project Bundle ID与google-services.json文件中的任何捆绑ID都不匹配

时间:2017-09-29 02:00:46

标签: firebase unity3d firebase-analytics

我首先在Unity,Android上制作手机游戏。

现在我正在集成firebase分析。

在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": "****************************************"
          }

我不知道应该检查什么。

Project Bundle ID(构建设置中的包名称 - 其他设置 - 标识)与google-services.json中的package_names完全相同。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

回答自己有点好笑......

我意外地发现了问题的原因。我的VC运行时出现了问题,因此generate_xml_from_google_services_json.exe无法从google-services.json中提取包名称。 (无法提取vc90.crt.manifest!)

不幸的是,尽管重新安装了很多Visual Studio,VC Runtime和.net框架,但我无法修复运行时错误。最后我重新安装了Windows 10,问题就此消失......仍然不知道导致此错误的原因。

答案 1 :(得分:0)

我知道你已经通过重新安装Windows修复了这个问题,但这是我通过这个问题的方法,以防其他人遇到这个问题:

确保您已在Unity播放器设置中设置了包名称(编辑>项目设置>播放器>其他设置>标识>包名称)。

设置为您在Firebase中设置的相同内容(看起来像com.CompanyName.ProductName)。

确保已按照此处https://firebase.google.com/docs/unity/setup所述将Firebase资源导入Unity项目,并确保Firebase文件夹位于资产>中。火力即可。更改此文件夹的位置似乎会破坏。

答案 2 :(得分:0)

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