【发布时间】:2020-04-11 08:31:52
【问题描述】:
希望这会找到你。
在过去几个痛苦的时间里,我一直在尝试找到一种方法将 Firebase 模块导入我的 Swift Playground,在我的工作区 FooWorkspace 内。在随后将 Firebase 导入我的 Playground 之前,我尝试了以下操作:
- 在我的项目 FooProject 和 Pod 之外的 FooWorkspace 中离开 Playground,如图所示 here。
- 创建一个框架 FooFramework 并在我的 Podfile 中指示将 Firebase pod 分配到 FooFramework,然后在我的 Playground 中导入 FooFramework,例如在this。
- 将 Playground 留在我的 FooProject 中。
但是,所有这些都不起作用。我目前正在使用 cocoapods-1.8.4 和 XCode 版本 11.1 (11A1027)。
还有几点我也不确定。
- 我能够导入 FirebaseCore,但 Playground 中的自动完成功能无法正常工作,并且我无法像在我的项目中那样正常编码。
- 当我创建一个框架时,给出的选项不是 Cocoa-touch 框架,而只是框架。
我确实是 iOS 开发的新手,在现实生活中没有人讨论这个问题,所以我觉得过去一天我一直在兜圈子。非常感谢任何帮助!
编辑:
在@ryanwils 提供一些有用的建议后,我完全重新启动了我的 XCode,然后能够导入 FirebaseCore/FirebaseFirestore。但是,从 Firebase 调用任何函数都会产生错误。例如,当我调用Firestore.firestore() 时,它给了我一个错误
Couldn't lookup symbols:
_OBJC_CLASS_$_FIRApp
谁能指出我正确的方向?我用谷歌搜索了一下,一些线程提到它无法看到我的 Pod/类,但如果我真的能够将 Firebase 导入我的游乐场,它不应该已经能够看到我的 Pod 了吗?谢谢!
【问题讨论】:
-
您想要/需要游乐场是否有具体原因?否则我只会创建 iOS 应用程序以避免连接到 Playgrounds 的麻烦..
-
我主要想测试一下我对 FireStore 查询的理解,而不是总是运行模拟(如果你是这么说的话)
-
你是说模拟器?好吧,如果你有 iOS 游乐场,我敢打赌幕后会有模拟器。
-
我按照上面的类似说明进行操作,并且能够正常工作。起初,自动完成对我也不起作用,但在 Playgrounds 中这种情况一直发生在我身上,甚至 UIKit API 也不会自动完成。我重新启动了 Xcode,突然它又回来了。你可以试一试吗?还值得注意的是,您可能需要拥有
import PlaygroundSupport和PlaygroundPage.current.setNeedsIndefiniteExecution = true以确保网络回调有足够的时间从 Firestore 返回。 -
感谢@ryanwils 的建议!完全重新启动我的 XCode 后,我已经能够毫无问题地导入 FirebaseCore/FirebaseFirestore。但是,在尝试调用 Firestore.firestore() 之类的东西后,它给了我一个错误:error:
Couldn't lookup symbols: _OBJC_CLASS_$_FIRApp。我已经编辑了我的问题以反映这一点。谢谢!