grpc: Cocoapods pod update: Parsing unable to continue due to parsing error

Should this be an issue in the gRPC issue tracker?

Yes

What version of gRPC and what language are you using?

1.4.2 with Objective-C / Swift

What operating system (Linux, Windows, …) and version?

OSX 10.12.6

What runtime / compiler are you using (e.g. python version or version of gcc)

ProtoCompiler 3.2.0

What did you do?

There is an issue with running pod update. So I noticed that all of my previously running workspaces result in the same error when running pod update:

[!] ERROR: Parsing unable to continue due to parsing error:
contained in the file located at /Users/.../Documents/grpc_test_081317/Podfile.lock
PODS:
  - !ProtoCompiler (3.2.0):
    - Protobuf (~> 3.0)
  - !ProtoCompiler-gRPCPlugin (1.4.2):
    - !ProtoCompiler (= 3.2.0)
    - gRPC-ProtoRPC (= 1.4.2)
  - BoringSSL (8.2):
    - BoringSSL/Implementation (= 8.2)
    - BoringSSL/Interface (= 8.2)
  - BoringSSL/Implementation (8.2):
    - BoringSSL/Interface (= 8.2)
  - BoringSSL/Interface (8.2)
  - Global (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Global/Messages (= 0.0.1)
    - Global/Services (= 0.0.1)
  - Global/Messages (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Protobuf
  - Global/Services (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Global/Messages
    - gRPC-ProtoRPC
  - gRPC (1.4.2):
    - gRPC-Core (= 1.4.2)
    - gRPC-RxLibrary (= 1.4.2)
  - gRPC-Core (1.4.2):
    - gRPC-Core/Implementation (= 1.4.2)
    - gRPC-Core/Interface (= 1.4.2)
  - gRPC-Core/Implementation (1.4.2):
    - BoringSSL (~> 8.0)
    - gRPC-Core/Interface (= 1.4.2)
    - nanopb (~> 0.3)
  - gRPC-Core/Interface (1.4.2)
  - gRPC-ProtoRPC (1.4.2):
    - gRPC (= 1.4.2)
    - gRPC-RxLibrary (= 1.4.2)
    - Protobuf (~> 3.0)
  - gRPC-RxLibrary (1.4.2)
  - nanopb (0.3.8):
    - nanopb/decode (= 0.3.8)
    - nanopb/encode (= 0.3.8)
  - nanopb/decode (0.3.8)
  - nanopb/encode (0.3.8)
  - Protobuf (3.3.0)

DEPENDENCIES:
  - Global (from `.`)

EXTERNAL SOURCES:
  Global:
    :path: .

SPEC CHECKSUMS:
  !ProtoCompiler: b66c7c0c1d911ad1490dcbfce30e1508739d8309
  !ProtoCompiler-gRPCPlugin: 892d2bfa38a797c026ead6c8aba6df99081407c9
  BoringSSL: 4135ae556ee2b82ee85477c39ba917a3dd5424ba
  Global: 0469a39d48a9b3548f751f9dd3d56e9f3e386256
  gRPC: 74b57d3c8a9366e09493828e0a1d27f6d69a79fd
  gRPC-Core: 642d29e59e5490374622b0629c2dd1c4c111775c
  gRPC-ProtoRPC: 675ef3d484c06967ed2a5f5ee0e510a3756f755e
  gRPC-RxLibrary: 7a25c5c25282669a82d1783d7e8a036f53e8ef27
  nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
  Protobuf: d582fecf68201eac3d79ed61369ef45734394b9c

PODFILE CHECKSUM: 43d72c97fe8940bce10f202cf95faeee63ec5ce9

COCOAPODS: 1.3.1

I have even setup a brand new test project. The setup allows everything to install fine as follows:

Installing !ProtoCompiler (3.2.0)
Installing !ProtoCompiler-gRPCPlugin (1.4.2)
Installing BoringSSL (8.2)
Installing Global (0.0.1)
Installing Protobuf (3.3.0)
Installing gRPC (1.4.2)
Installing gRPC-Core (1.4.2)
Installing gRPC-ProtoRPC (1.4.2)
Installing gRPC-RxLibrary (1.4.2)
Installing nanopb (0.3.8)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `grpc_test_081317.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 10 total pods installed.

My podspec is Global.podspec and my proto file is global.proto.

But as soon as I run pod update, I get the same parsing error. I have tried deintegrating podfiles from all the previous project and completely rebuilding but still the same error occurs. When I run pod install after the initial install, I get the same error:

[!] ERROR: Parsing unable to continue due to parsing error:
contained in the file located at /Users/.../Documents/grpc_test_081317/Podfile.lock
PODS:
  - !ProtoCompiler (3.2.0):
    - Protobuf (~> 3.0)
  - !ProtoCompiler-gRPCPlugin (1.4.2):
    - !ProtoCompiler (= 3.2.0)
    - gRPC-ProtoRPC (= 1.4.2)
  - BoringSSL (8.2):
    - BoringSSL/Implementation (= 8.2)
    - BoringSSL/Interface (= 8.2)
  - BoringSSL/Implementation (8.2):
    - BoringSSL/Interface (= 8.2)
  - BoringSSL/Interface (8.2)
  - Global (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Global/Messages (= 0.0.1)
    - Global/Services (= 0.0.1)
  - Global/Messages (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Protobuf
  - Global/Services (0.0.1):
    - !ProtoCompiler-gRPCPlugin (~> 1.0)
    - Global/Messages
    - gRPC-ProtoRPC
  - gRPC (1.4.2):
    - gRPC-Core (= 1.4.2)
    - gRPC-RxLibrary (= 1.4.2)
  - gRPC-Core (1.4.2):
    - gRPC-Core/Implementation (= 1.4.2)
    - gRPC-Core/Interface (= 1.4.2)
  - gRPC-Core/Implementation (1.4.2):
    - BoringSSL (~> 8.0)
    - gRPC-Core/Interface (= 1.4.2)
    - nanopb (~> 0.3)
  - gRPC-Core/Interface (1.4.2)
  - gRPC-ProtoRPC (1.4.2):
    - gRPC (= 1.4.2)
    - gRPC-RxLibrary (= 1.4.2)
    - Protobuf (~> 3.0)
  - gRPC-RxLibrary (1.4.2)
  - nanopb (0.3.8):
    - nanopb/decode (= 0.3.8)
    - nanopb/encode (= 0.3.8)
  - nanopb/decode (0.3.8)
  - nanopb/encode (0.3.8)
  - Protobuf (3.3.0)

DEPENDENCIES:
  - Global (from `.`)

EXTERNAL SOURCES:
  Global:
    :path: .

SPEC CHECKSUMS:
  !ProtoCompiler: b66c7c0c1d911ad1490dcbfce30e1508739d8309
  !ProtoCompiler-gRPCPlugin: 892d2bfa38a797c026ead6c8aba6df99081407c9
  BoringSSL: 4135ae556ee2b82ee85477c39ba917a3dd5424ba
  Global: 0469a39d48a9b3548f751f9dd3d56e9f3e386256
  gRPC: 74b57d3c8a9366e09493828e0a1d27f6d69a79fd
  gRPC-Core: 642d29e59e5490374622b0629c2dd1c4c111775c
  gRPC-ProtoRPC: 675ef3d484c06967ed2a5f5ee0e510a3756f755e
  gRPC-RxLibrary: 7a25c5c25282669a82d1783d7e8a036f53e8ef27
  nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
  Protobuf: d582fecf68201eac3d79ed61369ef45734394b9c

PODFILE CHECKSUM: 43d72c97fe8940bce10f202cf95faeee63ec5ce9

COCOAPODS: 1.3.1

So this has locked me out of updating all projects using GRPC. I have also tried solutions like the following but the same error still returns:

sudo rm -fr ~/.cocoapods/repos/master
sudo gem uninstall cocoapods
sudo gem update
sudo gem instal cocoapods
pod setup

What did you expect to see?

A regular pod update as was the case before.

What did you see instead?

The errors outlined.

Anything else we should know about your project / environment?

Xcode 8.3.3 Cocoapods 1.3.1

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 27 (4 by maintainers)

Most upvoted comments

@sibinlutoken Thanks! Using 1.2.1 and it is updating.

sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate
pod clean
rm Podfile
sudo gem uninstall cocoapods
sudo gem install cocoapods -v 1.2.1

Then was able to do install and update.

The tracking bug was closed with this fix which went into 1.5.0. I’ve just installed and tested this out on our project and it seemed to work! We can now run ‘pod install’ 2 times in a row! 😃

@phlippieb Thank you for the gsed command! Now I can pod update.

  gsed -i.bak '/\!/ s/\(\!\)\(.*\)\(:\|$\)\(.*\)/"\1\2"\3\4/' Podfile.lock Pods/Manifest.lock 

You can try to add the quotes to the files using sed. I hacked together the following command which seems to do the right things for my lockfile, but I don’t actually use this, so use at your own risk.

gsed '/\!/ s/\(\!\)\(.*\)\(:\|$\)\(.*\)/"\1\2"\3\4/'

It doesn’t work with the builtin MacOS sed; you have to install and use GNU sed. Hence gsed.

Or you could just revert to CocoaPods 1.2.1 or earlier:

sudo gem install cocoapods -v 1.2.1

But note that those early versions have their own issues, for example if you use the Permissions pod, well, good luck to ya.