3

When I try perform pod init in my Xcode project directory, it returns the following:

Traceback (most recent call last):
    35: from /usr/local/bin/pod:23:in `<main>'
    34: from /usr/local/bin/pod:23:in `load'
    33: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.2/bin/pod:36:in `<top (required)>'
    32: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    31: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    30: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.2/lib/cocoapods.rb:8:in `<top (required)>'
    29: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    28: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    27: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/core_ext/string/inflections.rb:1:in `<top (required)>'
    26: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    25: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    24: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflector/methods.rb:3:in `<top (required)>'
    23: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    22: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    21: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflections.rb:1:in `<top (required)>'
    20: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    18: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflector/inflections.rb:3:in `<top (required)>'
    17: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    16: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    15: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/i18n.rb:5:in `<top (required)>'
    14: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    13: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    12: from /Library/Ruby/Gems/2.6.0/gems/i18n-0.9.5/lib/i18n.rb:1:in `<top (required)>'
    11: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    10: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     9: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/map.rb:3:in `<top (required)>'
     8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     6: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/synchronization.rb:5:in `<top (required)>'
     5: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `load_native_extensions'
     4: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `each'
     3: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `block in load_native_extensions'
     2: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:62:in `try_load_c_extension'
     1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- concurrent/concurrent_ruby_ext (LoadError)
    46: from /usr/local/bin/pod:23:in `<main>'
    45: from /usr/local/bin/pod:23:in `load'
    44: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.2/bin/pod:36:in `<top (required)>'
    43: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    42: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    41: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.9.2/lib/cocoapods.rb:8:in `<top (required)>'
    40: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    39: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    38: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/core_ext/string/inflections.rb:1:in `<top (required)>'
    37: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    36: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    35: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflector/methods.rb:3:in `<top (required)>'
    34: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    33: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    32: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflections.rb:1:in `<top (required)>'
    31: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    30: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    29: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/inflector/inflections.rb:3:in `<top (required)>'
    28: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    27: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    26: from /Library/Ruby/Gems/2.6.0/gems/activesupport-4.2.11.3/lib/active_support/i18n.rb:5:in `<top (required)>'
    25: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    24: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    23: from /Library/Ruby/Gems/2.6.0/gems/i18n-0.9.5/lib/i18n.rb:1:in `<top (required)>'
    22: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    21: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    20: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/map.rb:3:in `<top (required)>'
    19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    18: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    17: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/synchronization.rb:5:in `<top (required)>'
    16: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `load_native_extensions'
    15: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `each'
    14: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:30:in `block in load_native_extensions'
    13: from /Library/Ruby/Gems/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb:62:in `try_load_c_extension'
    12: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:in `require'
    11: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:123:in `rescue in require'
    10: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:212:in `try_activate'
     9: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/specification.rb:1041:in `find_by_path'
     8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/specification.rb:1041:in `find'
     7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/specification.rb:1041:in `each'
     6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/specification.rb:1042:in `block in find_by_path'
     5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:39:in `compatible?'
     4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:7:in `bundler_version'
     3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:22:in `bundler_version_with_reason'
     2: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:68:in `lockfile_version'
     1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `lockfile_contents'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `pwd': Operation not permitted - getcwd (Errno::EPERM)

I have already installed Homebrew, Ruby, and Cocoapods already. I'm running macOS Catalina 10.15.4 and Xcode 11.3.1.

I tried to follow this advice and install cocoapods in /usr/local/bin via the following command: sudo gem install -n /usr/local/bin cocoapods

but I got the same error when installing it: Operation not permitted - getcwd (Errno::EPERM)

Any idea what the problem is?

EDIT

After reinstalling Ruby manager to install Ruby, I'm getting a new error:

2: from /Users/zorgan/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:9:in `<main>'
    1: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- executable-hooks/hooks (LoadError)
    13: from /Users/zorgan/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:9:in `<main>'
    12: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:in `require'
    11: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:123:in `rescue in require'
    10: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems.rb:213:in `try_activate'
     9: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/specification.rb:1036:in `find_by_path'
     8: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/specification.rb:1036:in `find'
     7: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/specification.rb:1036:in `each'
     6: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/specification.rb:1037:in `block in find_by_path'
     5: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:39:in `compatible?'
     4: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:7:in `bundler_version'
     3: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:22:in `bundler_version_with_reason'
     2: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:68:in `lockfile_version'
     1: from /Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `lockfile_contents'
/Users/zorgan/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `pwd': Operation not permitted - getcwd (Errno::EPERM)
Zorgan
  • 6,953
  • 16
  • 88
  • 175

3 Answers3

10

As noted in the comments below, this was resolved by moving the project out of ~/Library as this is a special system directory on macOS and can trigger the error above. Even so, the recommendation to use a Ruby manager stands as a best practice:

You're having an issue with macOS sandboxing permissions. The easiest fix is not to use the built-in version of Ruby that ships with macOS and instead use a Ruby manager to install Ruby:

  1. Install RVM with:
\curl -sSL https://get.rvm.io | bash -s stable
  1. Restart your shell
  2. Install Ruby with:
rvm install 2.6
  1. Install cocoapods with this command (and do not use sudo):
gem install cocoapods
  1. Confirm that the output of which pod is something like:
/Users/foo/.rvm/gems/ruby-2.6.3/bin/pod

Then retry your pod init command.

Here’s a resource that explains why not to use your system's default version of Ruby:

There are other managers you can install and use if you prefer:

Each has its benefits and drawbacks, but after 7 years of professional Ruby development RVM has never done me wrong so it's what I recommend.

anothermh
  • 7,000
  • 3
  • 28
  • 45
  • Thanks for the response. I followed every step and Ruby successfully reinstalled. However, I'm still getting a very similar error when I write `pod init`. I've added the error message in my edit above if you'd like to see. – Zorgan May 26 '20 at 09:20
  • @Zorgan Thank you for posting the error. Can you tell me what directory you're in when you run `pod init`? – anothermh May 26 '20 at 16:53
  • I was in my Xcode project directory when I ran `pod init`: `/Users/zorgan/library/Autosave Information/app/app`. I also tried running it in `/Users/zorgan/library/Autosave Information/app/` and got the same error. – Zorgan May 27 '20 at 08:04
  • This is a permission error you can `[[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm` to end to .bashrc – Billi May 30 '20 at 16:49
  • 1
    What if you move out of `/Users/zorgan/library`? `~/Library` on macOS is a special system directory. Try moving your project somewhere else, like `~/Documents`, then try again. – anothermh Jun 01 '20 at 22:47
  • YES MOVING THE PROJECT DIRECTORY WORKED - thankyou so much!! – Zorgan Jun 02 '20 at 09:52
1

For me it was that I was within a subdirectory of my project root (a directory that happened to be the same name as my project root, thus I didn't notice).

So be sure you're in the correct directory for your project that uses cocoapods.

Smartcat
  • 2,717
  • 1
  • 10
  • 24
0

For me it was a matter of choosing the default ruby to use. I had the default ruby shipped with Mac and a different one installed using a Ruby manager called rvm. So I made my rvm set the default ruby as the one it had installed.

This will list all paths where ruby is installed

which -a ruby

This will list all versions of ruby installed

rvm list

You should set the proper one you want to use as default

rvm use 3.0.2 --default

On a side note, you should be at a path in the shell where this works or else you would get this same error. I was trying a pod command in a project location that was in my desktop folder and it was failing. I had to change my directory in shell to desktop to set the default.

Jerrin
  • 153
  • 1
  • 14