Gabriel Goncalves
Gabriel Goncalves

Reputation: 5160

Error when run "pod install"

I get and error when I run pod install:

2016-03-31 14:33:34.073 ruby[45438:513490] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 5860. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
/Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/cocoapods-0.39.0/lib/cocoapods/user_interface/error_report.rb:13:in `report': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/cocoapods-0.39.0/lib/cocoapods/command.rb:61:in `report_error'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/claide-0.9.1/lib/claide/command.rb:374:in `handle_exception'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/claide-0.9.1/lib/claide/command.rb:315:in `rescue in run'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/claide-0.9.1/lib/claide/command.rb:303:in `run'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/cocoapods-0.39.0/lib/cocoapods/command.rb:47:in `run'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/gems/cocoapods-0.39.0/bin/pod:44:in `<top (required)>'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/bin/pod:23:in `load'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/bin/pod:23:in `<main>'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
    from /Users/gabrielafonso/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'

I don't have any smart quotes in my Podfile (at least I don't see them). It happened to me after a git merge. Anyone know what could be happening here?

I'm using cocoapods 0.39.0

As @Jelly suggested I'm adding the report file:

    # encoding: UTF-8

require 'rbconfig'
require 'cgi'

module Pod
  module UserInterface
    module ErrorReport
      class << self
        def report(exception)
          <<-EOS

#{'――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――'.reversed}

### Command

```
#{original_command}
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?


### Stack

```
   CocoaPods : #{Pod::VERSION}
        Ruby : #{RUBY_DESCRIPTION}
    RubyGems : #{Gem::VERSION}
        Host : #{host_information}
       Xcode : #{xcode_information}
         Git : #{git_information}
Ruby lib dir : #{RbConfig::CONFIG['libdir']}
Repositories : #{repo_information.join("\n               ")}
```

### Plugins

```
#{plugins_string}
```
#{markdown_podfile}
### Error

```
#{exception.class} - #{exception.message}
#{exception.backtrace.join("\n")}
```

#{'――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――'.reversed}

#{'[!] Oh no, an error occurred.'.red}
#{error_from_podfile(exception)}
#{'Search for existing GitHub issues similar to yours:'.yellow}
#{issues_url(exception)}

#{'If none exists, create a ticket, with the template displayed above, on:'.yellow}
https://github.com/CocoaPods/CocoaPods/issues/new

#{'Be sure to first read the contributing guide for details on how to properly submit a ticket:'.yellow}
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

EOS
        end

        private

        def `(other)
          super
        rescue Errno::ENOENT => e
          "Unable to find an executable (#{e})"
        end

        def pathless_exception_message(message)
          message.gsub(/- \(.*\):/, '-')
        end

        def markdown_podfile
          return '' unless Config.instance.podfile_path && Config.instance.podfile_path.exist?
          <<-EOS

### Podfile

```ruby
#{Config.instance.podfile_path.read.strip}
```
EOS
        end

        def error_from_podfile(error)
          if error.message =~ /Podfile:(\d*)/
            "\nIt appears to have originated from your Podfile at line #{Regexp.last_match[1]}.\n"
          end
        end

        def remove_color(string)
          string.gsub(/\e\[(\d+)m/, '')
        end

        def issues_url(exception)
          message = remove_color(pathless_exception_message(exception.message))
          'https://github.com/CocoaPods/CocoaPods/search?q=' \
          "#{CGI.escape(message)}&type=Issues"
        end

        def host_information
          product, version, build = `sw_vers`.strip.split("\n").map { |line| line.split(':').last.strip }
          "#{product} #{version} (#{build})"
        end

        def xcode_information
          version, build = `xcodebuild -version`.strip.split("\n").map { |line| line.split(' ').last }
          "#{version} (#{build})"
        end

        def git_information
          `git --version`.strip.split("\n").first
        end

        def installed_plugins
          CLAide::Command::PluginManager.specifications.
            reduce({}) { |hash, s| hash.tap { |h| h[s.name] = s.version.to_s } }
        end

        def plugins_string
          plugins = installed_plugins
          max_name_length = plugins.keys.map(&:length).max
          plugins.map do |name, version|
            "#{name.ljust(max_name_length)} : #{version}"
          end.sort.join("\n")
        end

        def repo_information
          SourcesManager.all.map do |source|
            next unless source.type == 'file system'
            repo = source.repo
            Dir.chdir(repo) do
              url = `git config --get remote.origin.url 2>&1`.strip
              sha = `git rev-parse HEAD 2>&1`.strip
              "#{repo.basename} - #{url} @ #{sha}"
            end
          end
        end

        def original_command
          "#{$PROGRAM_NAME} #{ARGV.join(' ')}"
        end
      end
    end
  end
end

Upvotes: 1

Views: 2395

Answers (2)

Gabriel Goncalves
Gabriel Goncalves

Reputation: 5160

So, the problem is that this file:

MyProject.xcodeproj/project.pbxproj 

was corrupted. I updated it and now it works.

Upvotes: 0

Jelly
Jelly

Reputation: 4532

Usually this problem is caused by wrong quotes characters in Podfile. Make sure you are using the right quotes (just deleting the old ones and writing them again from keyboard should do the trick). Also make sure you open and save the file as ASCII. If you use xCode this should not be a problem but with another text editor it could be.

Upvotes: 1

Related Questions