Firestore iOS SDK
从 Firebase iOS SDK 仓库发布下载中提取的预编译 Firestore iOS SDK xcframework
文件,由 Firebase iOS SDK 版本标记,并作为可消耗的 podspec
提供。
为什么
目前 Firestore iOS SDK 依赖于大约 500k 行的 C++ 代码,这些代码在作为 Xcode 构建的一部分编译时需要花很长时间——这在 CI 环境中尤其如此。
相关问题
- firebase/firebase-ios-sdk
- #4284
添加 FirebaseFirestore pod 依赖项会使构建时间增加数分钟
- #4284
- FirebaseExtended/flutterfire
- #349
[cloud_firestore] Xcode 构建速度极慢
- #349
前后对比
以下时间为在包含 Firestore 的项目中对 Xcode 建构(缓存完全清除)进行计时时的前后对比时间。
Mac mini (2018) 6 核心处理器:
Before: ~ 240s
After: ~ 45s
GitHub Action CI 2 核心处理器:
Before: ~ 551s
After: ~ 174s
使用方法
集成非常简单,只需在项目的 Podfile
中添加一行代码。之后,项目中所有已经从 pods 中使用 Firebase iOS SDK 的依赖项将自动从这些预编译的二进制文件获取 Firestore,而不是从源码获取。
- 对于 Flutter 和 React Native,此文件通常位于
ios/Podfile
- 对于 Flutter,目标通常是
Runner
,可以在target 'Runner' do
块中添加。 - 对于 React Native,它将包含所有本地
React-*
pods 的目标中。
pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '7.11.0'
⚠️ 注意:在标签为7.11.0
的位置,应将其更改为您或您的依赖项使用的Firebase/Firestore
的 pod 版本 - 格式为X.X.X
。对于 FlutterFire,正在使用的版本可以在 此处 查看,对于 React Native Firebase,在 此处 查看。如果当前Firebase/Firestore
pod 未指定版本,则可以省略上一行中的, :tag => '7.11.0'
并使用 master 上的最新版本。
第一次 pod install
特定版本时,CocoaPods 将远程检索指定标签的此 git 仓库,并将其本地缓存以用作 FirebaseFirestore
pod 的源。
⚠️ 注意:如果您先前在 CI 中对 iOS 构建进行了缓存,您可能会发现,在使用预编译二进制文件时不再需要缓存,并且它实际上可能会使构建时间延长几分钟。
解决 'leveldb' 缺失或重复符号错误
"leveldb" 框架是 Firestore 需要的,但它可能包含在其它库中,因此需要正确包含或排除。此 podspec 默认会尝试自动执行此操作,通过检测应该排除的已知情况,但有时自动检测失败。
如果您的构建由于重复的 'leveldb' 符号而失败,请使用 pod FirebaseFirestore/WithoutLeveldb
作为 pod 名称,而不是 pod FirebaseFirestore
,重新安装 pods 并尝试重新构建。
如果您的构建由于缺少 'leveldb' 符号而失败,请使用 pod FirebaseFirestore/WithLeveldb
作为 pod 名称,而不是 pod FirebaseFirestore
,重新安装 pods 并尝试重新构建。
支持的 Firebase iOS SDK 版本
以下是本存储库中当前支持的 Firebase iOS SDK 版本,此列表将自动更新。
⚠️ 备注:如果您正在寻找不在支持的版本列表中的新版本,请仔细查看 firebase-ios-sdk 的上游发行说明。这可能发生在 firebase-ios-sdk 团队发布一个临时版本以解决某些紧急问题时,但并未执行完整的发布流程。如果发生这种情况,请不要担心 - 在继续之前,请等待下一个支持的版本,或者如果必须使用临时版本,则暂时解耦此预编译框架。6.31.1 是一个例子,更多详情 在此处 解释了为什么会发生这种情况。
- 10.20.0
- 10.20.0
- 10.20.0
- 10.20.0
- 10.19.0
- 10.18.0
- 10.17.0
- 10.16.0
- 10.15.0
- 10.14.0
- 10.13.0
- 10.12.0
- 10.11.0
- 10.10.0
- 10.9.0
- 10.8.0
- 10.7.0
- 10.6.0
- 10.5.0
- 10.4.0
- 10.3.0
- 10.2.0
- 10.1.0
- 10.0.0
- 9.6.0
- 9.5.0
- 9.4.0
- 9.3.0
- 9.2.0
- 9.1.0
- 9.0.0
- 8.15.0
- 8.14.0
- 8.13.0
- 8.12.1
- 8.11.0
- 8.10.0
- 8.9.1
- 8.9.0
- 8.8.0
- 8.7.0
- 8.6.0
- 8.5.0
- 8.4.0
- 8.3.0
- 8.2.0
- 8.1.1
- 8.1.0
- 8.0.0
- 7.11.0
- 7.10.0
- 7.9.0
- 7.8.1
- 7.8.0
- 7.7.0
- 7.6.0
- 7.5.0
- 7.4.0
- 7.3.0
- 7.2.0
- 7.1.0
- 7.0.0
- 6.34.0
- 6.33.0
- 6.32.2
- 6.32.0
- 6.31.0
- 6.30.0
- 6.29.0
- 6.28.1
- 6.28.0
- 6.27.1
- 6.27.0
- 6.26.0
- 6.25.0
- 6.24.0
- 6.23.0
- 6.22.0
- 6.21.0
许可证
- 请参阅 LICENSE
由 Invertase 构建和维护。