As titled, what's the purpose of "--no-use-binaries" in carthage command line? if missing this, what could happen and what's the benefit to have this?
what's the purpose of "--no-use-binaries" in carthage
15.2k views Asked by LiangWang At
2
There are 2 answers
0
On
Carthage --no-use-binaries
As a framework developer you have two ways or even you can use both of them:
- Share
closed source code
(Pre-built framework). For example you can usecarthage archive
Official and add it to Github release attachments.Carthage build
is faster but framework cannot be debugged on some other computer or you can get next compile errorIncompatible Swift version - framework was built with <version_1> and the local version is <version_2>
- Share
open source code
. For example you publish your code on Github.com.
As a framework consumer you have next Cartfile
github "SomeCompany/SomeFramework"
By default Carhage
first of all try to use closed source code. But when you specify --no-use-binaries
Carthage first of all try to use open source code and if dont't find it closed source code will be used
Sometimes the prebuilt frameworks are corrupted in the dependencies’ project, so you need to build them locally.
Also, those prebuilt frameworks don’t support step-by-step debugging, so unless you build them locally, you won’t be able to use this feature with your dependencies.
Using
--no-use-binaries
compiles the projects locally, using your compiler.Executing the
update
command might occasionally produce an error when the Swift language updates to a newer version while the dependency is built for an older version of Swift (even if it’s still compatible). You can solve such scenarios by using this flag.One disadvantage is that it takes longer to compile the project with the
--no-use-binaries
flag. Without the flag, you’re requesting the prebuilt framework if it’s available. For more information you can see this Carthage issue on GitHub.Hope I cleared up your doubts.