Carthage: Fetching repositories won't finish during `carthage update`

Created on 7 Dec 2015  路  35Comments  路  Source: Carthage/Carthage

used command:
carthage update --verbose --platform iOS

used Cartfile:

github "Alamofire/Alamofire" ~> 3.0
github "Hearst-DD/ObjectMapper" ~> 1.0
github "tristanhimmelman/AlamofireObjectMapper" ~> 2.1
github "realm/realm-cocoa"
github "nickoneill/PermissionScope" ~> 1.0
github "ReactiveX/RxSwift" "2.0.0-beta.3"
github "Moya/Moya" "5.1.0"

I cleaned Carthage's caches repository and retried several times.
But tiny changes resolved this issue :) ...?

github "Alamofire/Alamofire" ~> 3.0
github "Hearst-DD/ObjectMapper" ~> 1.0
github "tristanhimmelman/AlamofireObjectMapper" ~> 2.1
github "realm/realm-cocoa"
github "nickoneill/PermissionScope" ~> 1.0
#github "ReactiveX/RxSwift" "2.0.0-beta.3"  # TODO : WTF?!
github "Moya/Moya" "5.1.0"

Perhaps, ReactiveX/RxSwift is needed to build Moya/Moya as dependency chain.
But Alamofire & ObjectMapper is also needed for AlamofireObjectMapper.
I don't know why, but It resolved and gave the relax to me.

Want to know it, Thanks!

stale

Most helpful comment

Thanks to @dhoerl, I remembered that I had a passphrase for my SSH key and this is what I did to fix it:

  1. Cancel the Carthage command
  2. Add SSH key to the ssh agent (ssh-add -K ~/.ssh/id_rsa)
  3. Run the Carthage command again
  4. Profit...

All 35 comments

Carthage 0.11.0 (homebrew-ed)
Brew 0.9.5 (git revision aeee; last commit 2015-12-03)
git version 2.6.3 (homebrew-ed)

I'm not sure why it hangs, but github "ReactiveX/RxSwift" "2.0.0-beta.3" and github "Moya/Moya" "5.1.0" are incompatible, since Moya 5.1.0 depends on RxSwift 2.0.0-beta.2: https://github.com/Moya/Moya/blob/5.1.0/Cartfile

I have a similar issue: Carthage never finishes either checking out or downloading binaries and spins at full cpu usage, as soon as I add specific repository to Cartfile. This issue started appearing with 0.11.0.

My Cartfile:

github "akolov/Bureaucracy" ~> 1.3
github "akolov/cloudinary_ios" "framework"
github "akolov/SwiftHelpers" ~> 1.3
github "akolov/XCTestCaseExtensions" ~> 1.0.4
github "akolov/adjust" "dynamic-framework"
github "akolov/YouTubePlayer" ~> 1.3.1
github "akolov/VimeoPlayer" ~> 1.3
github "akolov/Swell" "master"
github "akolov/TSMessages" "framework"
github "robb/Cartography" ~> 0.6.0
github "stylight/stylight-ios-lib" ~> 1.5.5
github "stylight/stylight-ios-lib-2" ~> 2.4.9 # this library causes infinite spin

Cartfile for stylight-ios-lib-2:

github "alamofire/Alamofire" ~> 3.0
github "akolov/Swell" "master"
github "realm/realm-cocoa" ~> 0.96.2
github "SwiftyJSON/SwiftyJSON" ~> 2.3.0

@ikesyo Oh! That's Why!!!!! Now I get it +1 !!!!

I'm new to carthage and using version 0.11 and I have seen it a few times a day that the carthage update just is stuck and has high cpu usage, can't compare with other versions...

This may be related to #940

Seeing the problem here too. Will fetch and build most dependencies, but anything that has a sub-dependency is failing to fetch the child.

I was seeing this before 0.11, figured I would do an upgrade to potentially fix the issue, got 0.11 and seeing the same thing.

Deleted everything and started over and everything works now with 0.11

I keep seeing the high CPU usage and hang in version 0.11.0 even after deleting the Carthage folder. Here is my Cartfile.resolved

github "CocoaLumberjack/CocoaLumberjack" "2.2.0"
github "antitypical/Result" "1.0.1"
github "specta/expecta" "v1.0.5"
github "specta/specta" "v1.0.5"
github "ReactiveCocoa/ReactiveCocoa" "v4.0.0-alpha.5"
github "Wolox/WLXBluetoothDevice" "0.6.1"
github "Wolox/WLXBluetoothDeviceReactiveExtensions" "0.7.0"

This issue is still happening with 0.18.0... I have a Cartfile which works with 0.11.0 but doesn't with 0.18.0...

same problem here stuck with Braintree repo

github "braintree/braintree_ios" ~> 4.7.2

same problem here stuck with card.io

github "card-io/card.io-iOS-source"

It's supposed to be open source not sure why it prompts for my credentials.

I am trying to migrate my existing Podfile with 60+ pods to Cartfile and I experience this issue. Update hangs at *** Fetching CocoaLumberjack

In my experience when Carthage hangs, is due to not being able to choose a version for transitive dependencies. This usually happens when two dependencies depend on the the dependency but slightly (usually compatible) different versions.

What really helped me was while it hung, running "ps -aef | grep git" - I could then see the exact git actions. I copied the clone command, killed carthage, then tried to run it via terminal, and could see what happened. If any git command prompts you for anything, carthage hangs with no indication of why.

@dhoerl What was git prompting you for?

I have seen similar things for example when you try to access a private repo and you don't have the right access permission for that machine or don't use ssh etc... For example:

git clone https://github.com/<company><my private repo>.git
Cloning into '<my private repo>'...
Username for 'https://github.com': 

I wrote a StackOverflow Q&A on this issue.

It would really be useful to have a "real" verbose option in Carthage, where it outputted to standard error the various git commands it was exec'ing - would have really helped me get to the root of my problems.

Git isn't supposed to prompt in this circumstances. We set an environment variable that's supposed to disable it.

It would really be useful to have a "real" verbose option in Carthage, where it outputted to standard error the various git commands it was exec'ing - would have really helped me get to the root of my problems.

Absolutely. There's an open issue for this. It just hasn't happened yet.

Command:
carthage update --verbose --platform iOS

Cartfile:

github "Quick/Quick"

github "Quick/Nimble"

github "realm/realm-cocoa"

I cleaned Carthage cache repository several times using command:
rm -rf Users/<username>/Library/Caches/org.carthage.CarthageKit

Problem - carthage update hungs up forever while cloning/fetching Quick framework

ParulThoughtworks,

Did you see my post of March 20th? You can also check out an answer I posted on StackOverflow

2 years later, still open, still not working ... :-(
Reverting to CocoaPods

In my experience, this happens when 2 libraries have a dependency to a third lib but with different versions.
I usually try to identify libs with ~> 1.0 and try to remove "forced" versions to see if that makes things better ...

I have the same issue but on certain machines, i try to do

carthage update --no-use-binaries --platform iOS

it works on my personal machine but hangs on the CI server while doing it.
is there any configurations need to be done on the machine itself to make it work? since it works on certain machines.

I have same error, so I investigated the conditions a little.
I couldn't figure it out completely, but I think I caught some hints.
So I add comments about it.

Condition 1

  • Cartfile:

    github "ReactiveCocoa/ReactiveCocoa"
    github "ReactiveCocoa/ReactiveObjCBridge" "master"
    github "inamiy/ReactiveAutomaton"
    
  • Result:
    carthage update doesn't finish.

    I was checking the carthage codebase and understood that dependency resolving does not finish.
    In this case, in updatedResolvedCartfile in Project, ResolvedCartfile.init (here) will not be called after a while.

Condition 2

  • Cartfile

    github "ReactiveCocoa/ReactiveObjCBridge" "master"
    github "inamiy/ReactiveAutomaton"
    

    (ReactiveCocoa removed from Condition 1)

  • Result
    carthage update aborted and this error shown

    Could not pick a version for github "ReactiveCocoa/ReactiveSwift", due to mutually incompatible requirements:
    ~> 1.0.0 (github "inamiy/ReactiveArray")
    ~> 3.0.0 (github "ReactiveCocoa/ReactiveObjCBridge")
    

So, I guess this error is related to Cartfile that includes "mutually incompatible requirements" plus some libraries around it.

@yoching are you using --new-resolver?

@blender
With --new-resolver, the problems with cartfile above was fixed. Thank you.

But, with this catfile below, build didn't finish even with --new-resolver option.

github "ReactiveCocoa/ReactiveCocoa"
github "ReactiveCocoa/ReactiveObjCBridge" "master"
github "inamiy/ReactiveArray" "master"
github "inamiy/ReactiveAutomaton"
github "ishkawa/APIKit"
github "thoughtbot/Curry"
github "thoughtbot/Argo"

@yoching what does --new-resolver do? and how would it help?

@amjad-Alhusseini

I don't know much about the implementation detail, but in my case, cartfile which was not resolved was resolved with --new-resolver option.

For me, it will often hang fetching a module almost every time I add a new module. It seems to hang on different modules each time. If I kill the update with ^C and try again, it usually works.

Maybe your rsa associated was created with password, try to create new rsa with no password, then insert it to your GitHub account

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Thanks to @dhoerl, I remembered that I had a passphrase for my SSH key and this is what I did to fix it:

  1. Cancel the Carthage command
  2. Add SSH key to the ssh agent (ssh-add -K ~/.ssh/id_rsa)
  3. Run the Carthage command again
  4. Profit...

Same issue on fetching firefox-ios deps.

Screen Shot 2021-04-30 at 17 17 49

Was this page helpful?
0 / 5 - 0 ratings

Related issues

justinmakaila picture justinmakaila  路  4Comments

pmhood picture pmhood  路  3Comments

3lvis picture 3lvis  路  3Comments

mdiep picture mdiep  路  3Comments

rogernolan picture rogernolan  路  3Comments