Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ionic v2 : "You cannot run cocoapods as root" error

I'm trying to build an Ionic 2 app with push notification in iOS.

I added Phonegap plugin push notification with this command line :

cordova plugin add phonegap-plugin-push --variable SENDER_ID=12341234 --save 

But when I try to run my project in a device I have this error in xcode :

"GoogleCloudMessaging.h" file not found

I looked for a solution and I had install Cocoapods. I removed platform iOS and I try to add it with this command line :

sudo ionic platform add ios

I had this error :

Installing "phonegap-plugin-push" for ios

Failed to install 'phonegap-plugin-push':undefined

Error: /Library/Ruby/Gems/2.0.0/gems/claide-1.0.2/lib/claide/command.rb:439:in `help!': [!] You cannot run CocoaPods as root. (CLAide::Help)

Usage:

    $ pod COMMAND

      CocoaPods, the Cocoa library package manager.

Commands:

    + cache      Manipulate the CocoaPods cache
    + env        Display pod environment
    + init       Generate a Podfile for the current directory
    + install    Install project dependencies according to versions from a
                 Podfile.lock
    + ipc        Inter-process communication
    + lib        Develop pods
    + list       List pods
    + outdated   Show outdated project dependencies
    + repo       Manage spec-repositories
    + setup      Setup the CocoaPods environment
    + spec       Manage pod specs
    + update     Update outdated project dependencies and create new Podfile.lock

Options:

    --silent     Show nothing
    --version    Show the version of the tool
    --verbose    Show more debugging information
    --no-ansi    Show output without ANSI codes
    --help       Show help banner of specified command
    from /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.2.1/lib/cocoapods/command.rb:47:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.2.1/bin/pod:55:in `<top (required)>'
    from /usr/local/bin/pod:23:in `load'
    from /usr/local/bin/pod:23:in `<main>'

I tried to run "pod install" directly in platforms/ios folder, but same issue.

So I try to remove sudo in the commande :

ionic platform add ios

But obviously I have this error :

MacBook-Air-de-user:MyApp compagny$ ionic platform add ios
Error during untar for /Users/user/.cordova/lib/npm_cache/cordova-ios/4.3.1/package.tgz: Error: EACCES: permission denied, open '/Users/user/.cordova/lib/npm_cache/cordova-ios/4.3.1/package/package.json'


Error: Failed to fetch platform ios
Probably this is either a connection problem, or platform spec is incorrect.
Check your connection and platform name/version/URL.
Error: EACCES: permission denied, open '/Users/user/.cordova/lib/npm_cache/cordova-ios/4.3.1/package/package.json'

I really don't know what I have to do to solve that. An Idea ?

like image 655
V. Pivet Avatar asked Jul 11 '17 08:07

V. Pivet


3 Answers

Try update Cordova version, remove platforms and add again:

npm install -g cordova
cordova platform remove android
cordova platform remove ios
cordova platform add android
cordova platform add ios
cordova plugin add phonegap-plugin-push --save

I had the same problem and its worked for me.

like image 105
Willian Custódio Avatar answered Sep 19 '22 16:09

Willian Custódio


If anyone is still having issues, I got it to work by running

pod install

in platforms/ios and you may need to add permissions in that folder before that

sudo chown -R *username* platforms/ios
like image 41
Austin Tarango Avatar answered Sep 22 '22 16:09

Austin Tarango


To allow code executions on your mac without using sudo simply run.

sudo chown -R Username /Users/username/Document/project location
like image 42
Chinedu Etoh Avatar answered Sep 18 '22 16:09

Chinedu Etoh