Follow up question on this change: Move binary download to build process #2342
Given this change, and use case:
carthage update --no-build --use-ssh --use-submodules $@
A mix of submodule internal/external Carthage Dependencies, plus a few additional Carthage Binary only dependencies based on those developer's project distribution preferences. This allows us to pull in dependencies and only build required architectures while developing.
Previously (0.28.0), this worked, with the issue of cached binary as referenced in PR summary.
From what I'm reading here, if we skill build via --no-build, this would prevent binary download? Any recommendations for how to approach this use case? Perhaps I'm approaching project dependency management in a way that is not optimal? Or if there is another solution of managing submodules vs binaries I had missed?
which carthage: /usr/local/bin/carthagecarthage version: 0.29.0xcodebuild -version: Xcode 9.3 Build version 9E145--no-build? YES--no-use-binaries? NO--use-submodules? YES--cache-builds? NO--new-resolver? NOcarthage update --no-build --use-ssh --use-submodules
Cartfile
# Interanal
github "https://github.<company>.com/<group>/<project>" ~> 12.0
# Binary Only Third Party
binary "https://raw.githubusercontent.com/dmiluski/CarthageSpecs/master/AppboyFramework.json"
binary "https://raw.githubusercontent.com/dmiluski/CarthageSpecs/master/mParticle-Appboy.json"
Carthage Output
LM-SFP-21014341:DummyStage dmiluski$ carthage update --no-build --use-ssh --use-submodules
*** Fetching SwiftMessages
*** Downloading binary-only framework AppboyFramework at "https://raw.githubusercontent.com/dmiluski/CarthageSpecs/master/AppboyFramework.json"
*** Checking out SwiftMessages at "4.1.4"
// But binary-only was not actually downloaded to folder
Actual outcome
*** Fetching SwiftMessages
*** Downloading binary-only framework AppboyFramework at "https://raw.githubusercontent.com/dmiluski/CarthageSpecs/master/AppboyFramework.json"
*** Checking out SwiftMessages at "4.1.4"
// Binary-only IS ACTUALLY downloaded to folder
Expected outcome
Carthage should pull dependencies specified as submodules as well as pull binaries even if --no-build is passed in.
Actually this is not related to --use-submodules but related to --no-build.
@ikesyo What is the progress of this issue? Are there any directions for solving it?
Any command to download binaries only?
Unsure what the status of this issue is - I鈥檝e tried drilling through all the linked issues and can only find rejected PRs. Is there some way to download/unpack binaries without building?
It is currently not possible. Only manifest files are downloaded
In the meantime, for anyone finding this issue, carthage build BinaryDep1 BinaryDep2 in your build script is probably the best workaround.
In the meantime, for anyone finding this issue,
carthage build BinaryDep1 BinaryDep2in your build script is probably the best workaround.
You can also script this by grepping the binary packages that Carthage has resolved:
binary_packages=$(grep -e '^binary' Cartfile.resolved | awk '{print $$2}' | xargs basename -s.json)
carthage build $binary_packages
Most helpful comment
You can also script this by grepping the binary packages that Carthage has resolved: