flutter doctor - CocoaPods installed but not working

Viewed 9798

using zsh - use to work in bash
brew doctor - Your system is ready to brew.
flutter doctor gives this error

[!] Xcode - develop for iOS and macOS (Xcode 12.2)
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
        This can usually be fixed by re-installing CocoaPods. For more info, see https://github.com/flutter/flutter/issues/14293.
      To re-install CocoaPods, run:
        sudo gem install cocoapods  

sudo gem install cocoapods

Gives this error  
dyld: Library not loaded: /usr/local/opt/gmp4/lib/libgmp.3.5.2.dylib  
  Referenced from: /Users/puser/.rvm/rubies/ruby-2.5.1/bin/ruby  
  Reason: image not found  
zsh: abort      sudo gem install cocoapods  

I can't get this error above corrected - any suggestions?

which pod

/Users/puser/.rvm/rubies/ruby-2.5.1/bin/pod

which gem

gem () {
    \typeset result
    (
        \typeset rvmrc
        rvm_rvmrc_files=("/etc/rvmrc" "$HOME/.rvmrc") 
        if [[ -n "${rvm_prefix:-}" ]] && ! [[ "$HOME/.rvmrc" -ef "${rvm_prefix}/.rvmrc" ]]
        then
            rvm_rvmrc_files+=("${rvm_prefix}/.rvmrc") 
        fi
        for rvmrc in "${rvm_rvmrc_files[@]}"
        do
            [[ -s "${rvmrc}" ]] && source "${rvmrc}" || true
        done
        unset rvm_rvmrc_files
        command gem "$@"
    ) || result=$? 
    hash -r
    return ${result:-0}
}

which ruby

/Users/puser/.rvm/rubies/ruby-2.5.1/bin/ruby
6 Answers

Using the suggestion for this post, I was able to get cocoapods reinstalled with the commands below
gem native extension error while installing cocoapods

Open Terminal

curl -L https://get.rvm.io | bash -s stable

Reopen Terminal

rvm install ruby-2.6

rvm use ruby-2.6.5

rvm --default use 2.6.5

Then this installed cocoapods as expected

sudo gem install cocoapods

Use brew and gem

  1. first uninstall by gem

    sudo gem uninstall cocoapods

  2. Install cocoapods by brew

    brew install cocoapods

  3. link using brew

    brew link --overwrite cocoapods

curl -L https://get.rvm.io | bash -s stable
rvm install ruby-2.6
rvm use ruby-2.6.5
rvm --default use 2.6.5
sudo gem update
sudo gem install ffi
brew install libffi
sudo gem install cocoapods
pod setup

this worked for me

First install brew package manager for Mac. https://brew.sh

If you use macOS, system Ruby is not recommended. and you should not use it. its for system specific use. you need to install another one for user.

brew install rbenv

then install the latest version of ruby. as today its 3.1.0

rbenv install 3.1.0

then set the global version of Ruby to be used in all shells

rbenv global 3.1

close the terminal and reopen it again, to affect the changes.

and finally install cocoapods

gem install cocoapods

as you see you don't use sudo command. because you are not overriding system specific configurations. when you need to use sudo command means you are doing something that you should avoid it.

if you are using fastlane and still complaining about cocoapods, even cocoapods is installed properly, reinstall fastlane again:

brew uninstall fastlane
gem install fastlane

sudo gem uninstall cocoapods
rvm install 2.6.5
sudo gem install cocoapods

I am using MacBook Pro (2020) with M1 and following steps worked


url -L https://get.rvm.io | bash -s stable

rvm install ruby-2.6

rvm reinstall ruby-2.6.6 

rvm use ruby-2.6.6

rvm --default use 2.6.6

sudo gem install cocoapods

Finally you can run flutter doctor to confirm.

flutter doctor

Output will be like this...

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.4, on macOS 12.4 21F79 darwin-arm, locale
    en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version
    32.0.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.68.1)
[✓] Connected device (1 available)
[✓] HTTP Host Availability
Related