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

时间:2018-08-23 23:07:26

标签: ios swift xcode cocoapods swift-framework

我还是一个初学者。我正在尝试创建一个使用firebase数据库(通过可可豆荚安装)的超级应用程序。我正在为驾驶员创建一个应用程序,为骑手创建另一个应用程序。我还试图通过尽可能构建我的应用程序来开始我的工作。

在riders应用程序中,我创建了一个数据库处理程序单例以控制对数据库的访问,包括将骑士添加到数据库的功能。两个应用程序共享一个公用的Firebase数据库。并非两个应用程序都具有单独的数据库处理程序(以及各种其他独立的处理程序),而是创建了一个独立的swift框架来容纳处理程序。

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

  1. 如果我尝试同时打开两个工作区(即,在同时使用骑士应用程序和在驱动程序应用程序上工作),则Xcode会给我一个工作区完整性错误,基本上是错误“无法加载xcode项目(即框架项目),因为它已经从另一个项目中打开了”。该应用仍然可以正常运行,但错误(红色错误)仍然存在。我怎样才能解决这个问题?。
  2. 我想在数据库处理程序框架本身内使用FirebaseDatabase ,但即使我在主应用程序中安装了FirebaseDatabase,该框架也看不到它,即,导入FirebaseDatabase行显示“没有此类模块”。我还尝试过在框架项目中分别通过可可豆荚安装FirebaseDatabase,并且仍然收到相同的“无此类模块”错误。我如何获取框架代码以查看所需的可可豆框架

1 个答案:

答案 0 :(得分:1)

在两个应用程序项目之外有一个共享的框架项目,但是包含在它们的工作区中会导致问题。如果更改是主要更改,则在一个工作区中编辑框架可能会破坏另一工作区中的应用程序。

我认为您有两种选择。一种是将框架应用程序保存在中央存储库中,然后将其检出到应用程序项目中。这样一来,每个应用程序项目都可以使用他们喜欢的框架版本,如果其中一个发生更改,则在您告诉它进行更新之前,另一个不会看到这些更改。

另一个选择是切换到包含应用程序和框架的单个工作区。实际上是说您将始终同时工作,并且它们将始终保持同步。

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