which carthage: /usr/local/bin/carthagecarthage version: 0.31.2xcodebuild -version: Xcode 10.1 Build version 10B61--no-build? no--no-use-binaries? no--use-submodules? no--cache-builds? no--new-resolver? noCartfile
github "google/EarlGrey" "earlgrey2"
Carthage Output
$ carthage update
*** Fetching EarlGrey
*** Checking out EarlGrey at "a4d0b3f0309910bc34a7543dd588f680e71f49db"
*** xcodebuild output can be found in /var/folders/14/h2zk5sx1315b__blzdt7hz1m4k0by8/T/carthage-xcodebuild.PKzH6q.log
*** Building scheme "AppFramework" in EarlGrey.xcodeproj
Actual outcome
Carthage did not build the static library schemes.
Expected outcome
Carthage should have built the static library schemes in addition to the framework scheme.

https://github.com/google/EarlGrey/pull/787
I found this in the readme:
Carthage does not currently support static library schemes, nor are there any plans to introduce their support in the future.
I'd like to understand why static library schemes are not supported. Let me know. Thanks!
Because static libraries add additional problems that must be solved: like how to expose the headers for the projects that use the dependency. Static frameworks support this nicely (it's basically a static library that's bundled with the headers), so there's no reason to support static libraries by themselves.
Thank you!
Can you explain "static framework" a bit more and how to generate this with Xcode? If I have a dependency that is a static library, but I do not expose the headers (hypothetically), would that not work?
For clarification from the Carthage folks -
If I provide a pre-compiled framework (dylib) which has static library dependencies, then there shouldn't be an issue with Carthage as the building is already done?
Most helpful comment
Because static libraries add additional problems that must be solved: like how to expose the headers for the projects that use the dependency. Static frameworks support this nicely (it's basically a static library that's bundled with the headers), so there's no reason to support static libraries by themselves.