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
Select specific scheme per dependency in Cartfile #728
Comments
+1. In most cases, we only need one of the many schemes a single framework provides. |
+1 Especially useful if a scheme's platform is not supported. E.g. Xcode 7.0 does not support platforms of Xcode 7.1. A tvOS scheme defaults to "My Mac", which leads to failing builds even if I use |
I don't think Carthage will ever add support for this. Recent platform additions notwithstanding, this isn't something you should need to do. |
In most cases perhaps. But when you have different types of builds beyond platform (a different set of build flags), Carthage is impossible to use when more than one scheme build to the same location causing one to globber the other. Is it so unreasonable to specify in the Cartfile which scheme to resolve to? It's also kind of silly to have to specify the platform on the command line every time. But I can specify it, so I just move on. But in the above case there is nothing I can do without expecting the author to split his project up. |
The issue is that it (a) adds complexity to Carthage and (b) encourages framework developers to make bad choices. It's easier and simpler for framework developers to use a different
#356 is open to discuss this. |
I'm using SQLite.swift in my project. It has two targets: SQLite and SQLiteCipher. First one builds with iOS's sqlite and the ladder build it itself, both end up creating the same framework, one clobbering the other. They also take a long time to build individually, which can be frustrating. I only want to build what I'm using.
Now the immediate solution that the author is looking into is separating SQLiteCipher into another repo. But this situation can come up for any number of reasons: You only want one build scheme.
How about something like this:
Choosing a scheme could also be used to select platform since those are scheme based as well, right? Unless it's a universal framework, in which case the build only happens once anyway, correct?
The text was updated successfully, but these errors were encountered: