I add GRDB.swift to the list, because it has support for CocoaPods and SPM, but removed Carthage from the desired list of distribution options. Fact is, Carthage is difficult to support for the OSS maintainer as soon as three conditions are met:
- the library becomes somewhat complex
- the library gains traction
- the library has shipped its 1.0.0 version and commits to semantic versioning.
Because of 1, the lib may define shared schemes that Carthage will build regardless of their actual usefulness for the library clients. It will also build schemes that Xcode can handle, but may fail with xcodebuild. When you're the library developer, you don't care. But:
Because of 1 and 2, users will start complaining that Carthage builds fail, or take too long. They may also ask for pre-compiled binaries. You start to care, and to spend a lot of time trying to tame the beast. With little success because it's an ever-changing landscape, and the bucket is never full.
Add 3, and you eventually discover that it is impossible to satisfy everybody anyway. There are skilled Carthage users that understand that they live at the edge and are ready to help themselves. And there are considerably more "poor" Carthage users who can't cope with the high level of difficulty brought by this distribution method. Fact is: you become poorer than them when you try to support them.
What I mean is: Carthage is super cool, but beware you don't spoil your OSS energy on it. For more context, you may check this issue.