Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cycle in dependencies between targets 'RxDataSources' and 'RxCocoa'; building could produce unreliable results. #284

Open
alouanemed opened this issue Dec 26, 2018 · 2 comments

Comments

@alouanemed
Copy link

I am trying to integrate Circle Ci and fastlane with my iOS app.

I get this error on
❌ 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 
@tigran-stdev
Copy link

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.

@brunomunizaf
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants