Я обновил Cocoapods до 1.13.0 и после вызова pod install
выдает ошибку:
конверсии.rb:108:в 'классе:Array': неопределенный метод 'deprecator' для ActiveSupport:Module (NoMethodError)
bundler: failed to load command: pod (/opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod)
/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.1.0/lib/active_support/core_ext/array/conversions.rb:108:in `<class:Array>': undefined method `deprecator' for ActiveSupport:Module (NoMethodError)
deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator
^^^^^^^^^^^
Did you mean? deprecate_constant
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/activesupport-7.1.0/lib/active_support/core_ext/array/conversions.rb:8:in `<top (required)>'
from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/cocoapods-1.13.0/lib/cocoapods.rb:9:in `<top (required)>'
from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/cocoapods-1.13.0/bin/pod:36:in `<top (required)>'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod:25:in `load'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/pod:25:in `<top (required)>'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in `load'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in `kernel_load'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:23:in `run'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:492:in `exec'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:34:in `dispatch'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:28:in `start'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.10/libexec/bundle:45:in `block in <top (required)>'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/3.2.0/bundler/friendly_errors.rb:117:in `with_friendly_errors'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.10/libexec/bundle:33:in `<top (required)>'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/bundle:25:in `load'
from /opt/homebrew/opt/bin/rbenv/versions/3.2.2/bin/bundle:25:in `<main>'
Как я могу это исправить?
🤔 А знаете ли вы, что...
Ruby был создан в Японии Юкихиро Мацумото и впервые выпущен в 1995 году.
Похоже, Cocoapods использует activesupport
без указания точной версии, а в последней версии (7.1.0) есть ошибка.
Нашел обходной путь. Ограничьтесь последней стабильной версией activesupport
(7.0.8).
gem 'activesupport', '~> 7.0', '<= 7.0.8'
Это происходит при установке Cocoapods.
Исправлено,
sudo gem uninstall activesupport
Вам может быть предложено выбрать версию, которую необходимо удалить. Выберите версию, если.
Затем установите рабочую версию с помощью
sudo gem install activesupport -v 7.0.8
Добавьте эту строку в Gemfile папки вашего проекта.
gem 'activesupport', '~> 7.0.8'
cd ios
чтобы перейти в папку ios.bundle install
установить Бандлерbundle update activesupport
обновить версию активной поддержкиbundle exec pod install
для установки зависимостей iOS, управляемых CocoaPods.Мое решение — заменить исходный gem 'cocoapods'
на этот ниже в Gemfile в корневом каталоге.
gem 'cocoapods', '~> 1.12'
gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
Затем cd ios
войдите в папку ios и запустите их ниже. И всё будет работать как раньше. Я не знаком с этой частью. Возможно, некоторые команды не нужны. но это сработало для меня.
1. bundle update
2. bundle install
3. pod repo update
4. bundle exec pod install
Это известная ошибка, она исправлена командой Cocoapods, но еще не выпущена.
Вы можете легко это исправить, добавив 1 строку кода до следующего выпуска:
Откройте /opt/homebrew/lib/ruby/gems/3.2.0/gems/cocoapods-1.13.0/lib/cocoapods.rb
с помощью VSCode или чего-то еще.
Добавьте require 'active_support'
в строке 7 над строкой «require active_support/...».
gem install cocoapods
еще раз.💡 It's not required and related to this issue but you can also update your ruby and gem files following this link to prevent furthur errors