pointfreeco / swift-composable-architecture

A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
https://www.pointfree.co/collections/composable-architecture
MIT License
12.6k stars 1.46k forks source link

CocoaPods Support / Podspec #557

Closed chrisballinger closed 3 years ago

chrisballinger commented 3 years ago

It would be great if there were alternative packaging options like CocoaPods for people hitting issues with Swift Package Manager. I'm willing to contribute a podspec, but I noticed the following 3 dependencies will also need CocoaPods support:

Is this something you would consider merging?

Thanks!

edit: workaround here https://github.com/pointfreeco/swift-composable-architecture/issues/557#issuecomment-846223323

mbrandonw commented 3 years ago

Hi @chrisballinger, sorry but we have chosen not to support cocoapods. The burden of maintenance is too high to do for all of our open source projects. If it's definitely necessary for your situation then you could maintain a fork of the repo that adds a podspec.

I'm going to close this issue now, but if you want to discuss further, or ask the community how they work around SPM bugs please do open a discussion in the repo.

chrisballinger commented 3 years ago

No worries, I find it a pain to maintain podspecs as well. For anyone else who needs CocoaPods support, we have some initial working podspecs that you can add to your Podfile here:

pod 'XCTestDynamicOverlay', :git => 'https://github.com/Rightpoint/xctest-dynamic-overlay.git', :branch => 'cocoapods-podspec'
pod 'CasePaths', :git => 'https://github.com/Rightpoint/swift-case-paths.git', :branch => 'cocoapods-podspec'
pod 'CombineSchedulers', :git => 'https://github.com/Rightpoint/combine-schedulers.git', :branch => 'cocoapods-podspec'
pod 'ComposableArchitecture', :git => 'https://github.com/Rightpoint/swift-composable-architecture.git', :branch => 'cocoapods-podspec'

I can confirm that ditching SPM and using these podspecs fixed the issue I was having in #556. Will probably need to file a radar with Apple for that one.

cooler333 commented 2 years ago

how can i use it in cocoapods submodules in big enterprise app which use modules? we can't rewrite all app to SPM, and just then use TCA. It's sad :(

cooler333 commented 2 years ago

I add cocoapods support for the latest TCA framework

pod 'CasePaths', :git => 'https://github.com/cooler333/swift-case-paths.git', :branch => 'cocoapods-support'
pod 'CombineSchedulers', :git => 'https://github.com/cooler333/combine-schedulers.git', :branch => 'cocoapods-support'
pod 'ComposableArchitecture', :git => 'https://github.com/cooler333/swift-composable-architecture.git', :branch => 'cocoapods-support'
pod 'CustomDump', :git => 'https://github.com/cooler333/swift-custom-dump.git', :branch => 'cocoapods-support'
pod 'XCTestDynamicOverlay', :git => 'https://github.com/cooler333/xctest-dynamic-overlay.git', :branch => 'cocoapods-support'
pod 'IdentifiedCollections', :git => 'https://github.com/cooler333/swift-identified-collections.git', :branch => 'cocoapods-support'
pod 'OrderedCollections', :git => 'https://github.com/cooler333/swift-collections.git', :branch => 'cocoapods-support'
lordzsolt commented 1 year ago

Based on @cooler333 's implementation, I set up a custom podspec repo, so you can use it in your Podfile.

All you need to do is:

source 'https://github.com/lordzsolt/swift-composable-architecture-podspecs.git'

target 'YOUR_TARGET' do
  use_frameworks!

  pod 'ComposableArchitecture'
end

Considering the only thing that needs to be done is to change the version number and push a new version from time to time, I'll try to keep it up to date with TCA.

20120608 commented 11 months ago

if !COCOAPODS

import ComposableArchitecture

endif

希望能帮到你