59 votes

cocoaPods pod install Permission refusée

Voici la version courte :

Quand je cours

pod install 

dans un projet Xcode, j'obtiens

[Pod::Executable pull error : cannot open .git/FETCH_HEAD : Permission refusée

Si je cours

sudo pod install

Je n'obtiens pas d'erreur, mais mes fichiers installés sont détenus par Root et ne peuvent pas être compilés. chown ces fichiers à un utilisateur normal pour utiliser le compilateur Xcode.

J'utilise Lion OSX.

J'ai installé cocoaPods en utilisant

sudo gem install cocoaPods

J'ai dû utiliser sudo parce que sans elle, j'ai

ERREUR : Lors de l'exécution de la gemme ... (Gem::FilePermissionError)

Vous n'avez pas les droits d'écriture dans le répertoire /Library/Ruby/Gems/1.8.

donc maintenant j'ai une version de cocoaPods installée par Root qui télécharge les bibliothèques Xcode appartenant à Root.

Es sudo installation de cocoaPods de la mauvaise manière ou de la manière normale ?

Si c'est normal, y a-t-il un moyen de résoudre le problème d'installation des pods ?

115voto

jianpx Points 1395

J'ai résolu ce problème en exécutant la commande suivante :

sudo chown -R $USER ~/Library/Caches/CocoaPods

y

sudo chown -R $USER ~/.cocoapods

Veuillez remplacer username y groupname avec votre nom d'utilisateur/nom de groupe pour le Mac.

0 votes

Notez que vous devez avoir le nom d'utilisateur auquel vous transférez la propriété entre -R et ~filename.

0 votes

À @lehn0058, je suis désolé d'avoir manqué le paramètre nom d'utilisateur dans la précipitation.

3 votes

Par ailleurs, l'incident s'est produit parce que j'ai exécuté 'sudo pod setup' au lieu de 'pod setup'.

22voto

André Herculano Points 676

J'ai seulement utilisé (où username est votre nom d'utilisateur pour la connexion Mac)

sudo chown -R username ~/Library/Caches/CocoaPods

y

sudo chown -R username ~/.cocoapods

Quand j'ai essayé avec le paramètre groupname j'ai obtenu

chown: username.groupname: illegal user name

Bien sûr, j'ai utilisé mon propre nom d'utilisateur et nom de groupe :)

2 votes

J'ai résolu le problème en supprimant le contenu de ~/Library/Caches/CocoaPods, puis en allant dans le répertoire du projet et en installant les pods.

11voto

Martijn M Points 146

La suppression des répertoires a fonctionné pour moi :

sudo rm -R  ~/Library/Caches/CocoaPods
sudo rm -R  ~/.cocoapods/repos

Si d'autres problèmes subsistent.

Supprimez le répertoire Pods et le fichier podFile.lock.

Cocoapods ajoute simplement les répertoires à nouveau.

2 votes

~/Library/Caches/CocoaPods/GitHub n'existe pas.

0 votes

Quelle version de CocoaPods avez-vous ?

5voto

Keith Smiley Points 9760

Le problème se situe au niveau de l'installation par défaut de Ruby sous Mac OS X. L'installation de Ruby/Gems est détenue par Root à l'emplacement que vous avez spécifié.

C'est un comportement normal sauf si vous installez un gestionnaire Ruby. Je recommande rbenv mais RVM est également populaire.

Ceux-ci ont installé votre installation Ruby dans votre $HOME dossier. De cette façon, votre utilisateur possède les exécutables Ruby et Gem.

1 votes

Merci pour la réponse rapide, j'ai trouvé une solution de contournement, chown user ~/.cocoapod/master/git/FETCH_HEAD, cela a fait disparaître mon problème mais je vais regarder la solution rbenv ou RVM.

1 votes

Pour mon contournement rapide, j'ai également dû changer les permissions de ~/Library/Caches/CocoaPods/GitHub, maintenant cela fonctionne mais cela reste un hack.

1 votes

Pour être clair, vous devez utiliser sudo pour installer la gemme à moins que vous n'utilisiez un gestionnaire Ruby. Les autres problèmes que vous avez rencontrés ne sont pas attendus et ont pu être causés par l'exécution de la commande sudo pod setup o sudo pod install .

4voto

cookiemonsta Points 63

Avec toutes les erreurs que j'ai eues en installant CocoaPods dans certains de mes projets, j'ai finalement réussi à trouver un modèle avec lui. Le voici :

  1. Accédez au dossier de votre projet depuis le terminal :

    $ cd /Users/username/Downloads/MessagesTableViewController-master
  2. Créez un podfile :

    $ touch podfile
    $ open -e podfile
  3. Une fois le podfile créé, accédez-y via le Finder et éditez-le dans n'importe quel autre éditeur de texte, à l'exception de TextEdit, car ce dernier s'embrouille parfois avec les apostrophes dans le podfile. J'ai utilisé textWrangler. Ecrivez ce qui suit dans le fichier pod ; (Notez que ces dépendances sont pour les projets qui supportent iOS version 6.0 et plus)

    platform :ios, '6.0'
    pod 'AFNetworking'
  4. Enregistrez le fichier et fermez-le.

  5. Retournez au terminal et voyez la version de votre pod :

    $ pod --version

    Selon la version de votre pod, si une mise à jour est nécessaire, exécutez cette commande :

    $ sudo gem update
  6. Une fois que la mise à jour est terminée, ou qu'elle indique qu'elle est déjà à jour, vous devez installer les cocoapodes :

    $ sudo gem install cocoapods
  7. Et à la toute fin, il suffit d'exécuter les commandes suivantes :

    $ sudo pod setup
    $ sudo pod install

Et Viola ! C'est fait. Vous verrez un dossier nommé Pods dans votre dossier de projet et la dépendance que vous avez indiquée dans le fichier pod sera apparente dans le dossier Pods comme un sous-dossier.

Bon codage :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X