Jordan
Jordan

Reputation: 4212

CocoaPods update is downgrading an installed pod

When I run pod update, MMDrawerController is being downgraded from the currently installed version (0.5.7) to an older one (0.4.0).

Here is the contents of my Podfile:

source 'https://github.com/CocoaPods/Specs.git'

link_with 'OpenEye-Mobile', 'SecurityStar Tests'

platform :ios, '7.0'

pod 'AFNetworking', '~> 2.5.0'
pod 'MBProgressHUD', '~> 0.9'
pod 'MMDrawerController'
pod 'MMDrawerController+Storyboard', '~> 0.0.1'
pod 'UIAlertView+Blocks', '~> 0.8.1'

target :"SecurityStar Tests" do
  pod 'OCMock', '~> 3.1.1'
end

I just updated the cocoapods gem from v. 0.34.4 to 0.35.0. The only change I have made to the Podfile is updating AFNetworking from 2.3.1 to 2.5.0. If I try to explicitly specify MMDrawerController as v. 0.5.7, I get a dependency error:

- `MMDrawerController (= 0.5.7)` required by `Podfile`
- `MMDrawerController (~> 0.4.0)` required by `MMDrawerController+Storyboard (0.0.1)`

What's going on here? Why is this a problem all of a sudden? Did something change in cocoapods 0.35? Is there a way I can force MMDrawerController+Storyboard to be OK with MMDrawerController (= 0.5.7)?

Upvotes: 6

Views: 4470

Answers (1)

Andrei Shender
Andrei Shender

Reputation: 2497

SOLUTION 1 is specify same range as in MMDrawerController+Storyboard

pod 'MMDrawerController', '~> 0.4.0'

SOLUTION 2 is to update MMDrawerController+Storyboard podspec so that it will use the latest version.

EXPLANATION The problem is as it says: dependency error.

This line in a podfile means take the latest (for 04.02 is 0.5.7):

pod 'MMDrawerController'

While this one demands 'MMDrawerController+Storyboard' :

pod 'MMDrawerController+Storyboard', '~> 0.0.1'

which, in turn, specifies in it's podspec as a dependency:

s.dependency 'MMDrawerController', '~> 0.4.0'

'~> 0.4.0' means that it can use versions 0.4.0 - 0.4.9 and there is no intersection of 0.5.7 with 0.4.0 - 0.4.9.

Upvotes: 5

Related Questions