如何解决 Xcode 构建错误“没有这样的模块 RxCocoa”?

Posted

技术标签:

【中文标题】如何解决 Xcode 构建错误“没有这样的模块 RxCocoa”?【英文标题】:How to solve Xcode build error "No such module RxCocoa"? 【发布时间】:2017-02-05 19:40:35 【问题描述】:

我是使用 Xcode 进行 Mac / ios 开发的新手,在构建我的应用程序时遇到了麻烦。我在这个问题上工作了 4 天,但我没有更多的想法来找到原因。

该应用有 6 个项目,捆绑在一个 xcworkspace 中。我通过 cocoapods 和终端添加了命令 pod install RxSwift、RxCocoa、OMGHTTPURLRQ、PromiseKit 和 SVWebViewController 成功。没有依赖项的项目可以成功构建。在 *.swift 文件中使用命令“import RxCocoa”和“import RxSwift”的两个项目(库)失败,并出现错误“No such module 'RxCocoa'”。

我阅读了一些 *** 帖子和 RxSwift Git 文档来解决问题,但没有成功。

Screenshot of build error and added reference

Podfile 定义:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
use_frameworks!
target 'CheckMyBus' do
    pod "OMGHTTPURLRQ", "~> 3.1.2“
    pod "RxSwift", "~> 2.3.0"
    pod 'RxCocoa', '~> 2.3.0'
    pod 'PromiseKit', '~> 3.2.1'
    pod 'SVWebViewController', '~> 0.2‘
end

通过终端安装 Pod:

MacMinis-Mac-mini:CheckMyBus MacMini$ pod install
Analyzing dependencies
Downloading dependencies
Using OMGHTTPURLRQ (3.1.3)
Using PromiseKit (3.2.1)
Using RxCocoa (2.3.1)
Using RxSwift (2.3.1)
Using SVWebViewController (0.2)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 5 dependencies from the Podfile and 5 total pods installed.

[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

[!] The `CheckMyBus [Debug]` target overrides the `EMBEDDED_CONTENT_CONTAINS_SWIFT` build setting defined in `Pods/Target Support Files/Pods-CheckMyBus/Pods-CheckMyBus.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `CheckMyBus [Release]` target overrides the `EMBEDDED_CONTENT_CONTAINS_SWIFT` build setting defined in `Pods/Target Support Files/Pods-CheckMyBus/Pods-CheckMyBus.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.
MacMinis-Mac-mini:CheckMyBus MacMini$ 

谁能帮帮我?

【问题讨论】:

我有时也会收到此“红线”错误。假设您尝试构建项目,请确保 Pod 确实存在于您的文件系统上,确保它在您正在使用的 Swift 版本下自行构建(根据开发人员页面,例如 GitHub) .在一种情况下,我必须将我的 Podfile 指向 Pod 的本地版本。我希望我有一个修复它的答案,但是——我通常会在找到解决方案之前大惊小怪。 【参考方案1】:

我解决了这个问题。解决方案非常简单,但我之前没有找到将 pod 与多个库一起使用的文档。

我忘记在库的 Podfile 中添加 pod 定义。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
workspace 'MyWorkspace'
use_frameworks!

target 'MainProj' do
    pod "OMGHTTPURLRQ", "~> 3.1.2“
    pod "RxSwift", "~> 2.3.0"
    pod 'RxCocoa', '~> 2.3.0'
    pod 'PromiseKit', '~> 3.2.1'
    pod 'SVWebViewController', '~> 0.2‘
    project 'MainProj'
end

target 'Lib1' do
    pod "RxSwift", "~> 2.3.0"
    pod 'RxCocoa', '~> 2.3.0'
    project 'Lib1/Lib1.xcodeproj'
end

target 'Lib2' do
    pod "OMGHTTPURLRQ", "~> 3.1.2“
    pod "RxSwift", "~> 2.3.0"
    pod 'RxCocoa', '~> 2.3.0'
    project 'Lib2/Lib2.xcodeproj'
end

【讨论】:

【参考方案2】:

注意:构建有效,但测试无效!说明:CocoaPods Podfile 配置问题。给定的 pod/framework 是为非测试主要目标指定的,甚至可能是为(单元)测试目标指定的,但不是为 UI 测试目标指定的!例如:平台:ios,'9.0' use_frameworks!目标 'Xyz' 做 pod 'MessageK...

【讨论】:

以上是关于如何解决 Xcode 构建错误“没有这样的模块 RxCocoa”?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决xcode中的循环依赖错误

尝试运行并构建到 iPhone 模拟器时出现 Flutter Xcode 致命错误

Xcode 9.2 Shell 脚本调用错误

Xcode:Pod 安装后构建失败(错误:链接器命令失败,退出代码 1)

如何在构建 IPA 时修复 Xcode 6.1 错误

Xcode 构建时出现格式错误