cocoapodsswinject

How to satisfy cocoapod external dependancy when using specific branch


In my project I'm using both Swinject and SwinjectAutoregistration pods. Both are usually declared as '2.0.0' versions like so: pod 'Swinject', '2.0.0' pod 'SwinjectAutoregistration', '2.0.0'

But in order to build my project in the beta version of Xcode 9, I need to take a specific branch of the Swinject github repo, as stated here. The new declaration looks like this:

pod 'Swinject', :git => 'https://github.com/Swinject/Swinject.git', :branch => 'swift4'

When I then try pod update I have dependencies error. I believe SwinjectAutoregistration declares a dependency to Swinject 2.0 so I have different sources for the same pod.

Is there a way to tell cocoapods that this specific source of the pods acts like the 2.0 version?


Solution

  • Well, it seems like specifying the source as the github repo instead of the cocoapod repo for this particular pod works.

    I added this line before the target 'MyGreatApp' do line:

    source 'https://github.com/Swinject/Swinject.git'

    I must specify that this works for this particular pod, but might not work for other cases. The fine folks behind Swinject have a fix for an Xcode (9, beta) bug on a branch in their github repo that is not in the cocoapod repo.

    So this answer works in this case, but unfortunately this might not be as generic as I hoped.