swift - '没有这样的模块'使用模块化架构和 CocoaPods
问题描述
我正在应用本文中描述的模块化架构。我为系统的每个模块创建了一个子项目。在我的 Presentation 子项目中,我使用的是 RxSwift,所以在我的 Podfile 中,我拥有的是:
platform :ios, '10.0'
use_frameworks!
workspace 'ios-swift-template'
target 'Presentation' do
project 'ios-swift-template/Modules/Presentation/Presentation.project'
pod 'RxSwift'
pod 'RxCocoa'
end
target 'Networking' do
project 'ios-swift-template/Modules/Networking/Networking.project'
pod 'Moya/RxSwift'
end
target 'ios-swift-template' do
end
即便如此,当我尝试编译项目时,它说 BaseViewController(Presentation Module 中的一个类)找不到 RxSwift。如果我尝试仅构建或运行演示模块,它运行时不会出现错误。
在我的项目构建阶段中,我将所有模块框架复制到项目中:
为什么在构建期间找不到 RxSwift?
解决方案
在目标 'ios-swift-template' 以及主要目标可以直接或间接引用的任何其他 pod 下添加 pod 'RxSwift',然后重新运行 pod-install。主要目标看不到内部框架中包含的 pod。阅读此内容以获得更多解释:
https://medium.com/@akfreas/how-to-use-cocoapods-with-your-internal-ios-frameworks-192aa472f64b
如果您深入了解“iOS 中的模块化架构”一文,他的做法完全一样,他首先使用“core_pods”别名定义 RxSwift pod,然后将其包含在框架目标中,并且进一步包含在“application_pods”中包含在应用程序目标中。所以,你看,应用程序目标也必须安装 RxSwift pod。
推荐阅读
- html - 如何在 Bootstrap 中删除选择框的圆角?
- ios - iOS - 手机锁定时显示视图
- python-3.x - 使用 pip3 安装 spacy 时出错
- git - 连接多个 Repos 的 Git History
- ruby-on-rails - rails rake 任务暂停了一段时间,然后在控制台上继续按 enter
- android - 为什么我的 SQLite 无法创建表 ID 列?
- sql-server-2012 - 在 sql server 2012 中获取 Sum 列的总和
- javascript - 如何使用 DataTables 插件显示带有 2 个标题的表格?
- java - 小文件的音频缓存android studio
- laravel - Laravel 图像干预约束