RxDataSources
RxDataSources copied to clipboard
Cycle in dependencies between targets 'RxDataSources' and 'RxCocoa'; building could produce unreliable results.
I am trying to integrate Circle Ci and fastlane with my iOS app.
I get this error on :x: error: Cycle in dependencies between targets 'RxDataSources' and 'RxCocoa'; building could produce unreliable results.
Although I can run the app on simulator easily without that error. I had that error several times in the past but I would clean the project and it will disappear.
The error occurs when running the cmd both on my machine and on circle ci :
bundle exec fastlane test
pod file 👍
platform :ios, '11.0'
use_modular_headers!
use_frameworks!
abstract_target 'projectApp' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
inhibit_all_warnings!
# Networking
pod 'Moya/RxSwift', '~> 11.0' # https://github.com/Moya/Moya
pod 'ReachabilitySwift', '~> 4.3.0' # https://github.com/ashleymills/Reachability.swift
# Rx Extensions
pod 'RxDataSources', '~> 3.0' # https://github.com/RxSwiftCommunity/RxDataSources
pod 'RxSwiftExt' # https://github.com/RxSwiftCommunity/RxSwiftExt
pod 'NSObject+Rx' # https://github.com/RxSwiftCommunity/NSObject-Rx
pod 'RxViewController' # https://github.com/devxoul/RxViewController
pod 'RxGesture' # https://github.com/RxSwiftCommunity/RxGesture
pod 'RxOptional' # https://github.com/RxSwiftCommunity/RxOptional
pod 'RxTheme' # https://github.com/RxSwiftCommunity/RxTheme
# JSON Mapping
#pod 'ObjectMapper', :git => 'https://github.com/kajensen/ObjectMapper.git' # https://github.com/Hearst-DD/ObjectMapper
pod 'Moya-ObjectMapper/RxSwift' # https://github.com/ivanbruel/Moya-ObjectMapper
# Image
pod 'Kingfisher', '~> 4.0' # https://github.com/onevcat/Kingfisher
# Date
pod 'SwiftDate', '~> 5.0' # https://github.com/malcommac/SwiftDate
# Tools
pod 'R.swift', '~> 5.0.0' # https://github.com/mac-cain13/R.swift
pod 'SwiftLint' # https://github.com/realm/SwiftLint
# Keychain
pod 'KeychainAccess' # https://github.com/kishikawakatsumi/KeychainAccess
# Fabric
pod 'Fabric'
pod 'Crashlytics'
# UI
pod 'NVActivityIndicatorView' # https://github.com/ninjaprox/NVActivityIndicatorView
pod 'PMAlertController' # https://github.com/pmusolino/PMAlertController
pod 'ImageSlideshow', '~> 1.6' # https://github.com/zvonicek/ImageSlideshow
pod 'ImageSlideshow/Kingfisher'
pod 'DZNEmptyDataSet' # https://github.com/dzenbot/DZNEmptyDataSet
pod 'Hero' # https://github.com/lkzhao/Hero
pod 'Localize-Swift', '~> 2.0' # https://github.com/marmelroy/Localize-Swift
pod 'RAMAnimatedTabBarController' # https://github.com/Ramotion/animated-tab-bar
pod 'AcknowList' # https://github.com/vtourraine/AcknowList
pod 'KafkaRefresh' # https://github.com/OpenFeyn/KafkaRefresh
pod 'JVFloatLabeledTextField' # https://github.com/jverdi/JVFloatLabeledTextField
# Keyboard
pod 'IQKeyboardManagerSwift' # https://github.com/hackiftekhar/IQKeyboardManager
# Auto Layout
pod 'SnapKit', '~> 4.0' # https://github.com/SnapKit/SnapKit
# Code Quality
pod 'FLEX', '~> 2.0' # https://github.com/Flipboard/FLEX
pod 'SwifterSwift', '~> 4.6.0' # https://github.com/SwifterSwift/SwifterSwift
pod 'AttributedLib', :git => 'https://github.com/Nirma/Attributed.git' # https://github.com/Nirma/Attributed
# Logging
pod 'CocoaLumberjack/Swift' # https://github.com/CocoaLumberjack/CocoaLumberjack
target 'productA'
target 'productB'
end
# CocoaPods optimization, always clean project after pod updating
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 8.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
end
end
end
Dir.glob(installer.sandbox.target_support_files_root + "Pods-*/*.sh").each do |script|
flag_name = File.basename(script, ".sh") + "-Installation-Flag"
folder = "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
file = File.join(folder, flag_name)
content = File.read(script)
content.gsub!(/set -e/, "set -e\nKG_FILE=\"#{file}\"\nif [ -f \"$KG_FILE\" ]; then exit 0; fi\nmkdir -p \"#{folder}\"\ntouch \"$KG_FILE\"")
File.write(script, content)
end
Hi @alouanemed, I have faced the same issue in my end.
I am assuming the problem is coming due to enabled parallelized build option in the scheme.
The whole error message is the following:
error: Cycle in dependencies between targets 'RxDataSources' and 'RxCocoa'; building could produce unreliable results.
Cycle path: RxDataSources → RxCocoa → RxDataSources
Cycle details:
→ Target 'RxDataSources' has target dependency on Target 'RxCocoa'
→ Target 'RxCocoa' has a command with output '/Users/.../Build/Products/DebugDev-iphonesimulator/RxCocoa/RxCocoa.framework.dSYM'
○ Target 'RxCocoa' has a command with output '/Users/.../Build/Products/DebugDev-iphonesimulator/RxCocoa/RxCocoa.framework/RxCocoa'
○ Target 'RxCocoa' has link command with output '/Users/.../Build/Intermediates.noindex/Pods.build/DebugDev-iphonesimulator/RxCocoa.build/Objects-normal/x86_64/RxCocoa'
I can't understand how RxCocoa target depends from RxDataSource.
As the warning says: 'RxDataSources' has target dependency on Target 'RxCocoa' which means that wherever you're importing RxDataSources you don't have to import RxCocoa.