firebase - Unity 和 Firebase - 包管理器解析器,卸载以下包:Firebase 身份验证
问题描述
我正在使用 Unity 2019.3.4f1 和 Firebase 包 6.15.2,当我导入自定义包时,包管理器解析器要求更改“/manifest.json”。
当我单击“添加选定的注册表”时,Unity 开始卸载软件包并显示以下消息:“卸载以下软件包:Firebase 身份验证”
如果没有出现此消息,我将无法部署或玩游戏。
解决方案
您遇到的是较新版本的 Unity 支持包管理器,可以更轻松地安装和管理依赖项。较新版本的 Firebase SDK 可以选择利用这一点。
我不能完全说出您的具体问题是什么,但是有几条前进的道路。
最简单的方法是单击“禁用注册表版”。如果您根本不想弄乱这个系统,只需单击此按钮并按照您的预期使用 Unity 包。
否则,您可以单击“添加选定的注册表”。这将启动一个有点复杂的过程,其中:
- Firebase 插件向 Unity 添加了一个“Scoped Registry”(这是您在“After”窗格中看到的代码)。这告诉 Unity Google 的包存储库。
- 然后,插件会查找注册表中包含的任何包并将其卸载以避免将其包含两次。
- 插件将它卸载的包添加到你的包清单中。这使您可以使用“包管理器”窗口直接在 Unity 中维护和更新 Firebase 插件:
您想要这样做的原因有很多。首先,Firebase Unity SDK在磁盘上非常大——甚至比您项目中的 SDK 还要大。原因是它为旧版 .NET3 项目和现代 .NET4 项目提供了每个 Firebase 库的冗余副本。eachunitypackage
还必须包含它的所有依赖项——这意味着FirebaseCore
每个unitypackage
.
其次,最让我感动的是,Firebase 插件太大,无法在没有 Git LFS 的情况下放入 GitHub 存储库。这是因为支持 Linux 所需的一个或多个库比单个源文件大。当您使用包管理器时,这些东西会被保留在您的源存储库之外(如果您不提交Library/
目录,那么您不应该提交),从而降低您在云中的大小并使这种解决方法变得不必要。
第三,如我上面包含的屏幕截图所示,当您使用包管理器时,根据需要升级和降级 Firebase SDK 会更容易。您不再需要记住您安装了哪些 Firebase 库,您可以在一个简洁的列表中看到它们!您还可以轻松卸载不需要的 Firebase 功能,而不必过多担心周围存在大量依赖项(您仍然必须手动清理一些本机插件)。
您也可以手动执行所有这些操作!您可以手动执行此处概述的步骤,而不是下载 Unity SDK 。即您可以添加:
"scopedRegistries": [
{
"name": "Game Package Registry by Google",
"url": "https://unityregistry-pa.googleapis.com",
"scopes": [
"com.google"
]
}
]
Packages/manifest.json
到该弹出窗口中所示的末尾。然后以这种方式安装和管理 Firebase 插件,完全不用担心迁移。
编辑:我还应该提到,如果您确实认为自己遇到了错误,那么负责您看到的对话框的系统被称为“ Unity 的外部依赖管理器”。您可以直接在其 GitHub 页面上提交问题。
推荐阅读
- html - Web:将内容完美居中,但在顶部有一个不会将内容下推的 div
- google-bigquery - 如何在 Big Query 视图中计算短语
- parsing - Antlr parser StackOverflowException(用于解析正则表达式)
- javascript - 在 Gatsby 网页上水平排列图像和文本
- java - 如何在 JDBC 中建立一对多关系?
- spring-boot - 使用 Kotlin 对 Spring Boot 的 POST 请求中的问题
- azure-sql-database - 我们如何在 Azure SQL 数据仓库中修改表的列名?
- sql - SQL 禁用重复行 (Postgres)
- android - 如何从 url android 下载图像
- javascript - Javascript foreach背景颜色更改