【发布时间】:2020-07-14 19:48:00
【问题描述】:
我正在使用 Firebase 创建一个新项目,当我点击下载 SDK 时,上面写着它大约为 300 MB,但下载大小为 2.2 GB。 我只需要一个包,有没有办法单独下载包?
【问题讨论】:
我正在使用 Firebase 创建一个新项目,当我点击下载 SDK 时,上面写着它大约为 300 MB,但下载大小为 2.2 GB。 我只需要一个包,有没有办法单独下载包?
【问题讨论】:
我会分几个部分回答这个问题:
SDK 的大小归结为两个因素:
每个 unitypackage 都包含它所依赖的所有包。因此,像FirebaseCore 甚至FirebaseAnalytics 这样的常见逻辑会被重复包含。这大大简化了集成逻辑(Unity 足够聪明,不会导入您已经导入的代码,但不够聪明,如果您忘记了有条件地拉入其他 unitypackage 文件)但会扩大 SDK 的大小(它本质上是一个 zip 的 zip 文件文件,每个文件都包含冗余数据)。
Unity SDK 实际上是在open source C++ SDK 之上构建的。由于没有将 C++ 构建集成到 Unity 构建系统的好方法,这意味着每个库和每个支持的架构都包含适用于 iOS、Android、MacOS、Windows 和 Linux 的每个 SDK 的冗余副本。 Firebase SDK 本身支持 Unity 5 系列的版本,这也意味着 Unity 本身已放弃支持但仍会从 Firebase 获得更新的 C++ 平台和工具链。
那么为什么 Unity 包管理器集成更小?
UPM 是 built on top of NPM,这意味着只会下载您需要的确切 Firebase 库。这意味着您无需下载 .NET 3.x 兼容库或 Firebase Core 的 10 个副本。这些包还存在于 Unity 中一个单独的 Library 目录中(您不应该将其保留在版本控制中 - 节省空间),并且可以根据需要按需下载(从技术上讲,它们也存在于您的 package cache用户目录)。
希望对您有所帮助!任何关于您希望如何进一步改进的 cmets/建议都可以提交为 a feature request 或 Unity Quickstart 上的问题。
【讨论】: