Je suis passé à El Capitan et depuis, je ne peux plus mettre à jour mes pods.
$ pod update
-bash: pod: command not found
J'ai donc essayé de réinstaller CocoaPods et j'ai obtenu ceci:
$ Sudo gem install cocoapods
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
Je suis l'administrateur sur cet ordinateur. Pourquoi cela arrive-t-il?
Ceci est dû à la nouvelle fonctionnalité Protection de l'intégrité du système introduite dans El Capitan. Cela empêche même les administrateurs d'écrire en /usr/bin
.
Votre meilleure option serait d'installer des gemmes sans avoir besoin de Sudo
. Il y a un bon guide sur la façon de le faire :
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
gem install cocoapods
À partir de numéro 3736 de CocoaPods
Désinstallez toutes les instances de cocopods (juste pour être sûr et garder les choses propres), voir désinstaller complètement les Cocoapods
Sudo gem uninstall cocoapods
ou encore mieux, désinstallez complètement tous les composants (et sélectionnez Toutes les versions pour chacun)
gem list --local | grep cocoapods | awk '{print $1}' | xargs Sudo gem uninstall
Réinstaller
Sudo gem install -n /usr/local/bin cocoapods
Changer la permission d'accès
Sudo chmod +rx /usr/local/bin/
Cela devrait fonctionner pour vous
Sudo gem install -n /usr/local/bin cocoapods
Pour une raison quelconque, le système sans racine semble moins restrictif lorsque l’on met simplement à niveau le système. Sudo gem pourrait installer des cocoapods sans problème sur une machine mise à niveau à partir de la version 10.10 - toutefois, les modules de stockage bin ne sont plus installés dans/usr/bin:
$ Sudo gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:/Library/Ruby/bin
$ pod --version
0.37.2
Certains utilisateurs nous ont fait savoir qu'ils recevaient cette erreur lors d'une installation à l'échelle du système:
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
Nous ne savons pas pourquoi gem se comporte différemment sur certains systèmes, mais cela peut être résolu en passant
-n /usr/local/bin
À la commande install, afin que l'exécutable du pod soit installé à cet emplacement.
Concernant la question/le problème initial:
$ Sudo gem install cocoapods
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted
J'ai trouvé que j'avais le même problème avec plusieurs GEMS, alors j'ai généralisé la réponse reconnue ( Keith Smiley ) pour mettre à jour TOUT local gemmes ... (sur El Capitan avec enracinement en vigueur)
$ Sudo gem install cocoapods -n /usr/local/bin/ # this command installs
$ Sudo gem update -n /usr/local/bin/ # this command updates all local gems
Cela fonctionne bien et créera un journal détaillé de toutes les mises à jour et erreurs.
J'ai vu de nombreuses erreurs. Ils étaient tous "incapables de convertir" les erreurs. L'analyse de nombreux documents rencontrera une erreur de "saut" ... comme ceci:
$ unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/jazzy... skipping
Je crois que ces erreurs de saut ne sont pas des problèmes.
CocoaPods sera mis à jour au cours de ce processus, ainsi que tous les autres GEMS locaux, en fonction de l'état actuel de vos GEMS locaux. Je crois que c'est la meilleure façon de traiter le problème sans racine (qui est la cause du problème).
Votre meilleure option pour installer des pods pour une installation personnalisée et standard. Veuillez vous référer au lien: https://github.com/CocoaPods/CocoaPods/issues/3692
Avez-vous réinstallé les outils Xcode Command Line? Cela a résolu mon problème. Vous devez sélectionner l'outil Ligne de commande dans les préférences Xcode (Emplacements), puis installer des cabochons.
Pour moi, cela a fonctionné avec: Sudo gem installer -n/usr/local/bin cocoapods --pre