Xcode 创建一个本身使用 cocoapods 的 swift 框架



我还是个初学者。我正在尝试创建一个使用Firebase数据库(通过可可豆荚安装(的超级类型应用程序。我正在为合作车主创建一个应用程序,为乘客创建另一个应用程序。我也试图通过尽我所能构建我的应用程序来开始。

在骑手应用程序中,我创建了一个数据库处理程序单例来控制对数据库的访问,包括将骑手添加到数据库的功能。两个应用共享一个通用的 Firebase 数据库。我没有让两个应用程序都有单独的数据库处理程序(以及各种其他独立的处理程序(,而是创建了一个独立的 swift 框架来保存处理程序。

我已经将我的 swift 框架添加到 rider 应用程序工作区和驾驶员应用程序工作区中工作区的顶层(通过拖动框架 xcodeproj 文件(,并完成了我读过的所有过程,将框架构建到通用设备并将框架复制到实际的应用程序嵌入式二进制文件等。 独立地,两个应用程序工作区都正常工作....然而。。。我在这个阶段有2个问题

  1. 如果我尝试同时打开两个工作区(即在处理驾驶员应用程序的同时在 Rider 应用程序上工作(,Xcode 会给我一个工作区完整性错误,基本上给出错误"无法加载 Xcode 项目(即框架项目(,因为它已经从另一个项目打开"。 该应用程序仍然运行正常,但错误(红色错误(仍然存在。 我该如何解决这个问题?
  2. 我想在数据库处理程序框架本身中使用FirebaseDatabase,但即使我在主应用程序中安装了FirebaseDatabase,框架也看不到它,即导入Firebase数据库行显示"没有这样的模块"。我还尝试在框架项目中通过cocoa pods单独安装FirebaseDatabase,但仍然遇到相同的"没有这样的模块"错误。如何获取框架代码以查看所需的可可豆荚框架

共享框架项目位于两个应用项目之外,但包含在它们的工作区中可能会导致问题。在一个工作区中编辑框架可能会中断另一个工作区中的应用(如果更改是重大更改(。

我认为你有两个选择。一种是将框架应用程序保存在中央存储库中,并将其签入应用程序项目。这允许每个应用项目使用他们熟悉的框架版本,如果一个应用项目发生更改,另一个应用项目在您告诉它更新之前不会看到这些更改。

另一种选择是切换到包含应用和框架的单个工作区。有效地说,您将始终同时处理两者,并且它们将始终保持同步。

我不能说找不到框架有什么问题,因为我不使用 CocoaPods,但我会检查每个项目设置中的所有框架搜索路径,看看它们是否在正确的目录中搜索编译的框架。不应在框架目标中复制任何依赖项框架,但需要在应用目标中复制所有这些依赖项框架。

最新更新