CocoaPods RxCocoa 3.6.1 构建在 Xcode 9 中失败
Posted
技术标签:
【中文标题】CocoaPods RxCocoa 3.6.1 构建在 Xcode 9 中失败【英文标题】:CocoaPods RxCocoa 3.6.1 build failed in Xcode 9 【发布时间】:2017-09-21 12:13:57 【问题描述】:RxCocoa 3.6.1 版无法在 Xcode 9 中构建并显示错误消息:
Initializer 'init(parentObject:)' with Objective-C selector 'initWithParentObject:' conflicts with initializer 'init(parentObject:)' from superclass 'RxScrollViewDelegateProxy' with the same Objective-C selector
【问题讨论】:
【参考方案1】:这似乎是由@objc 推断引起的。奇怪的是,关闭 Swift 3 风格的 @objc 推断似乎可以解决这个问题。将其放在 Podfile 的末尾:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.2'
if target.name == 'RxCocoa' then
config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'Off'
end
end
end
end
这会将所有 Pod 设置为使用 Swift 3.2 构建 a 禁用 RxCocoa 的 @objc 推理。
【讨论】:
以上是关于CocoaPods RxCocoa 3.6.1 构建在 Xcode 9 中失败的主要内容,如果未能解决你的问题,请参考以下文章
RxCocoa - 为啥 PublishRelay 没有 asDriver() 方法?
为啥 `NotificationCenter+Rx` 在 RxCocoa 而不是 RxSwift
RxCocoa 中的 UICollectionViewDelegate