Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

An error occurred while processing the pre-install hook of the Podfile

I met an error when I run pod install.

[!] An error occurred while processing the pre-install hook of the Podfile.

undefined method `pods' for #<Pod::Installer:0x007f9f93a66b90>

/Users/XieYunjia/warmupApp/Podfile:49:in `block (2 levels) in from_ruby'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.38.0/lib/cocoapods-core/podfile.rb:153:in `call'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.38.0/lib/cocoapods-core/podfile.rb:153:in `pre_install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:731:in `run_podfile_pre_install_hook'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:719:in `block in run_podfile_pre_install_hooks'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/user_interface.rb:140:in `message'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:718:in `run_podfile_pre_install_hooks'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:142:in `block in download_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/user_interface.rb:59:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:139:in `download_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/installer.rb:104:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/command/project.rb:71:in `run_install_with_update'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/command/project.rb:101:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:312:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/lib/cocoapods/command.rb:48:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.0/bin/pod:44:in `<top (required)>'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `<main>'

This is the content of my Podfile.

platform :ios, "7.0"

pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '2.5.4'
pod 'MagicalRecord', :git => 'https://github.com/magicalpanda/MagicalRecord.git', :tag => 'v2.3.0-beta.5',:inhibit_warnings => true
pod 'ReactiveCocoa', '~> 2.4.7'

......

pod 'LTNavigationBar', '~> 2.0.1'
pod 'TSMessages' ,:head

# DEBUG
pod 'SocketRocket', '~> 0.2.0' ,:inhibit_warnings => true,     :configurations => ['Debug']
pod 'PonyDebugger', '~> 0.4.3' ,:inhibit_warnings => true, :configurations => ['Debug']
pod 'Reveal-iOS-SDK', :configurations => ['Debug']

target :warmupTests, :exclusive => true do
  pod 'Kiwi'
end

#remove all unsupported localization files
pre_install do |installer|
  supported_locales = ['base' , 'zh-hans', 'en' , 'english']

  installer.pods.each do |pod|
    %x[ find "#{pod.root}" -name '*.lproj' ].split.each do |bundle|
      if (!supported_locales.include?(File.basename(bundle,         ".lproj").downcase))
        puts "Removing #{bundle}"
        FileUtils.rm_rf(bundle)
      end
    end
  end
end

If I removed the last few lines showing below, this error would disappear.

#remove all unsupported localization files
pre_install do |installer|
  supported_locales = ['base' , 'zh-hans', 'en' , 'english']

  installer.pods.each do |pod|
    %x[ find "#{pod.root}" -name '*.lproj' ].split.each do |bundle|
      if (!supported_locales.include?(File.basename(bundle,         ".lproj").downcase))
        puts "Removing #{bundle}"
        FileUtils.rm_rf(bundle)
      end
    end
  end
end

What causes this error, and how can I fix it? Sorry for my poor English.

like image 402
MissYasiky Avatar asked Jul 23 '15 10:07

MissYasiky


2 Answers

You get this error message on CocoaPods 0.38+, just change installer.project to installer.pods_project will resolve it.

See https://github.com/CocoaPods/CocoaPods/issues/3918 for more details:

Yep, this is due to changes in the hooks API which you're using in your Podfile, see http://blog.cocoapods.org/CocoaPods-0.38/ for more information.

like image 150
ZHANG Cheng Avatar answered Sep 28 '22 06:09

ZHANG Cheng


Cocoapods made a change to installer recently. You'll want to do something like this:

pre_install do |installer|
    supported_locales = ['base', 'zh-hans', 'en', 'english']

    Dir.glob(File.join(installer.sandbox.pod_dir('FormatterKit'), '**', '*.lproj')).each do |bundle|
        if (!supported_locales.include?(File.basename(bundle, ".lproj").downcase))
            puts "Removing #{bundle}"
            FileUtils.rm_rf(bundle)
        end
    end
end
like image 27
Ben Graver Avatar answered Sep 28 '22 06:09

Ben Graver