unity3d Unity和Firebase数据库7.0.2:回退处理程序无法加载库

qrjkbowd  于 2022-12-04  发布在  其他
关注(0)|答案(3)|浏览(202)

我刚刚在我的项目中集成了Firebase Auth,效果很好。数据库在Firebase门户上创建。
在集成Firebase数据库之后(由于某些不清楚的原因,它没有在Unity包管理器中显示),当在开始时调用database = FirebaseDatabase.DefaultInstance;时,编辑器冻结。
我检查了编辑器日志,它以我复制粘贴的内容结尾。我在这里看到了一些关于firebase 6.10的问题的帖子,但我在这里是7.0.2。不知道你们有什么想法?
编辑器日志:
回退处理程序无法加载库/应用程序/Unity/Hub/Editor/2019.4.11f1/Unity.app/内容/框架/Mono/lib/lib资产/Firebase/插件/x86_64/FirebaseCppApp-7_0_2.bundle回退处理程序无法加载库/应用程序/Unity/Hub/Editor/2019.4.11f1/Unity.app/内容/框架/Mono/lib/lib资产/Firebase/插件/x86_64/FirebaseCppApp-7_0_2.bundle。dylib回退处理程序无法加载库/应用程序/Unity/集线器/编辑器/2019.4.11f1/Unity. app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle.so回退处理程序无法加载库/应用程序/Unity/集线器/编辑器/2019.4.11f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle已加载场景'临时/__备份场景/0.backup'

**Edit#1:**首先感谢你们两个冗长的回答。我将尝试重新导入项目中的bundle文件,并向你们报告。我应该注意到,编辑器日志中列出的路径实际上并不存在于我的Unity.app包内容中。它找到Contents和Frameworks,但是Mono并不存在......在将CakeCommander的注册表添加到我的Packages/Manifest.json之后,我终于设法拥有了包管理器的Google LLC部分,并重新创建了它。从那里导入Realtime Database和Auth,这样很好。我还应该注意到,现在所有SDK的文件夹都存在于Packages文件夹中,而Assets文件夹中不再有任何内容。我暂时不使用任何版本控制。

gajydyqb

gajydyqb1#

您可能需要将Google游戏软件包注册表添加到您的Unity项目的Packages/Manifest.json文件中。
这看起来应该像:

{
  "scopedRegistries": [
    {
      "name": "Game Package Registry by Google",
      "url": "https://unityregistry-pa.googleapis.com",
      "scopes": [
        "com.google"
      ]
    }
  ],
  "dependencies": {
    ...
  }
}

您将需要重新启动Unity,以便它识别此更改。
我建议通过软件包管理器重新导入,以防出现潜在的配置错误。

kpbpu008

kpbpu0082#

首先,这看起来像是一个编辑器的问题,因为你已经发布了它(如果它发生在你的设备上,我不会感到惊讶)。为了分解这个特定的日志,Firebase Unity SDK包括三个部分:
1.一个C# Unity库,您可以从典型的Unity代码中使用它
1.面向游戏开发人员的跨平台C
1.与每个操作系统挂钩的原生iOS/Android层,或针对Windows、Linux和MacOS的这些原生层的C
实现。
看起来第三层好像不见了,至少在桌面上是这样。不见的文件是.bundle文件,它们基本上是macOS的共享库。所以可能发生了以下三种情况之一:

  1. MacOS Catalina (及更新版本)对哪些可以运行,哪些不能运行有严格的保护。您可能需要明确允许.bundle文件用于MacOS,以便Unity编辑器与Firebase库连接。我已经记录了一个video about this,但总的要点是您需要重新安装Firebase插件,运行Unity(你应该得到一个安全弹出窗口),关闭弹出窗口而不删除任何内容,然后在你的计算机的安全设置中允许Firebase。
    1.您已从项目中排除.bundle文件。导入SDK或将项目添加到源代码管理时(有时这些被排除为“构建工件”)为了在Mac上的编辑器中测试Firebase,您将需要包含此.bundle文件。这可能就像重新导入FirebaseDatabase.unitypackage并确保包含FirebaseCppDatabase.bundle和相关的.bundle文件:

请注意,如果确实从源代码管理克隆了项目,则需要查找排除规则并确保提交了捆绑包文件。
1.相关的.bundle文件可能与编辑器构建目标没有关联。如果您想在Unity中衍生出macOS原生版本,您需要确保.bundle文件包含在“Editor”版本中,以便在Editor和“Standalone”中运行:

请注意@CakeCommander的建议也可以解决您的问题。PackageManager会将Firebase SDK安装在Assets/目录下,并且Unity知道如何在需要的时候在每台机器上获取它。任何开发人员或版本控制软件都不太可能破坏安装。我将注意到Unity的外部依赖关系管理器用于自动地将包迁移到包管理器,但现在已经不是了--所以我可能会等到该特性重新实现后再直接修改包注册表,但这也可能是最简单的前进路径。

koaltpgm

koaltpgm3#

问题的原因:我们在初始化SDK之前过早地使用了Firebase SDK。
例如:当Firebase Analytic SDK尚未启动时,在启动画面中发送Firebase事件。

相关问题