Les CocoaPods ne fonctionnent pas sous macOS High Sierra


163

Après la mise à niveau vers macOS High Sierra, CocoaPods ne fonctionne pas. Bien qu'il soit tentant de s'éloigner des CocoaPods, ce n'est malheureusement pas dans la portée pour le moment. Le message d'erreur est ci-dessous.

zsh: /Users/****/.gems/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory

Je me rends compte que l'erreur provient de la mise à niveau de Ruby, mais quelle est la solution facile? Essayer de faire en sorte que CocoaPods utilise la nouvelle version ruby ​​génère d'autres erreurs.

Edit: Pour l' instant i installé Ruby 2.0avec rvm install 2.0.0et rvm use 2.0.0puis réinstallé CocoaPods sudo gem install cocoapods. Semble fonctionner maintenant.


Avez-vous mis à jour les outils de ligne de commande?
mat le

@matt Oui, sudo xcode-select -s /Applications/Xcode-beta.appet a sudo xcode-select --installsuivi l'interface graphique à partir de là.
Maciej Swic

Je pensais à ceux ici: developer.apple.com/download/more Je trouve souvent que les outils externes ne fonctionnent pas tant que je ne les installe pas.
mat

Réponses:


417

Selon https://github.com/CocoaPods/CocoaPods/issues/6778, la réinstallation de CocoaPods devrait résoudre ce problème:

sudo gem install cocoapods

2
a fonctionné pour moi aussi, devrait être marqué comme solution acceptée
swalkner

17
Un simple "brew reinstall cocoapods" a fonctionné (car il exécute cette commande exacte pour vous). Merci d'avoir fait remarquer cela.
Markus

Bien que cela fonctionne, cela devrait certainement être un problème CocoaPods, car il ne parvient pas à localiser la version mise à jour de Ruby. Le réinstaller probablement vérifie à nouveau l'installation et donc la «corrige».
Hans Knöchel

gem install cocoapods - ne lance pas de conversion implicite de nil en erreur de chaîne mais "brew reinstall cocoapods" a fait le travail. merci @Markus
krishnan

gem install -n / usr / local / bin cocoapods m'aide
Anupam Gupta

112

Après la mise à niveau vers macOS High Sierra, corrigez-le avec les commandes suivantes:

sudo gem update --system
sudo gem install -n /usr/local/bin cocoapods

une fois qu'il sera terminé, écrivez la commande ci-dessous:

pod install

Cette solution a fonctionné pour moi ... !!!


1
J'ai eu "ERREUR: lors de l'exécution de gem ... (Errno :: EPERM) Opération non autorisée @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem" lors de l'exécution de la première commande, mais en exécutant le second, "l'installation du pod" fonctionnait toujours. Merci.
Bryce Sandlund

Malgré l '"avertissement", je vais quand même dire merci ici. C'était la seule chose qui fonctionnait pour moi. Le simple fait de réinstaller les cocoapodes (plusieurs fois) n'a fait aucune différence jusqu'à ce que je fasse ces deux étapes. Donc merci!
huygir

J'ai dû exécuter la mise à jour ruby ​​via la commande suivante:sudo gem update -n /usr/local/bin --system
Paul Popiel

A travaillé pour moi (cocoapods 1.5.3).
atereshkov

27

J'ai eu cette erreur lors de l'installation des CocoaPods

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

Et j'ai utilisé cette déclaration. Ça a marché!

sudo gem install cocoapods -n /usr/local/bin

1
C'est la seule solution qui semblait fonctionner pour moi. Merci
Dan Beaulieu

12

Cela a fonctionné pour moi, même si je devais faire

sudo gem install cocoapods

9

Cela a résolu mon problème:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods

Veuillez donner une brève explication de ce que fait le code affiché pour que les nouveaux utilisateurs de cette technologie changent pour comprendre et réutiliser votre réponse :-)
Mathieu VIALES

1
Les personnes qui découvrent les cocoapodes devraient savoir lire comme les autres.
thibaut noah

@MathieuVIALES, le "brew install ruby" suppose que vous avez déjà Homebrew packager ( brew.sh ). Cette commande installe ensuite (ou réinstalle probablement techniquement ruby ​​puisque vous avez réellement besoin de ruby ​​pour installer Homebrew lui-même). La ligne suivante "gem install -n / usr / local / bin cocoapods" réinstalle le programme CocoaPod (plus sur cocoapods.org ).
Eddie Eddie Eddie

8

Exécutez simplement la commande ci-dessous:

sudo gem install -n /usr/local/bin cocoapods

6

J'ai donc également rencontré ce problème après avoir mis à jour vers High Sierra, et il semble qu'il y ait eu des changements dans un emplacement de fichier auquel le framework ruby ​​accédait.

Vous pouvez le résoudre en utilisant le,

sudo gem install cocoapods

puis mettez à jour les pods avec pour des mesures sûres

pod repo update 

et enfin

pod install

pour que le fichier pod fonctionne à nouveau.

J'espère que cela aide :)


5

Essayez d'utiliser

sudo gem update --system

Avant

sudo gem install cocoapods

Cela a fonctionné pour moi


5

Cela fonctionne pour moi:

brew link --overwrite cocoapods

5

Processus d'installation des Cocoapods:

  1. sudo gem install cocoapods (si vous avez des problèmes de cocoapds, veuillez mettre à jour le fichier gem)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Pour moi, je devais:

gem uninstall cocoapods
which pod

Il l'a toujours montré dans le chemin, alors j'ai supprimé cela. Assurez-vous qu'il n'apparaît toujours pas.

ensuite

gem install cocoapods

Finalement ! La suppression de l'ancien exécutable du pod avant l'installation des cocoapodes a fonctionné pour moi
Seb Fanals

4

Aller au terminal ...

étape 1). sudo gem installer des cocoapodes

une fois l'installation des cabosses de cacao terminée,

étape 2). mise à jour du dépôt de pod

Terminé


3

J'ai également rencontré cette erreur après l'installation High Sierra.

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

J'ai utilisé la déclaration suivante identifiée par Danh Huynh (voir ci-dessus) et cela a fonctionné!

sudo gem install cocoapods -n /usr/local/bin

1
C'est juste une répétition de cette réponse existante , n'est-ce pas?
Pang

cela l'a corrigé pour moi
MiMo

3

MacOS High Sierra utilise ruby ​​2.3 par défaut. Après la mise à niveau, certaines vieilles pierres précieuses rubis peuvent ne pas fonctionner correctement. Ce problème me survient lorsque j'ai exécuté la commande bundle (bundler est un ruby ​​gem; il a un utilitaire appelé bundle).

Donc, pour clarifier, toutes les anciennes gemmes ruby ​​(cocoapodes, bundler, etc.) qui essaient d'accéder à ruby ​​2.0 échoueront.

La solution est de réinstaller ces anciennes gemmes dans un répertoire où vous avez les autorisations d'écrire.

Pour les cocoapodes,

sudo gem install cocoapods -n /usr/local/bin

fera l'affaire.

Vous pouvez éventuellement mettre à niveau votre système de gemmes si vous aimez beforel'installation:

sudo gem update --system

Cela peut vous indiquer que la mise à niveau a échoué. Mais en fait, si vous tapez:

gem --version

Vous pouvez voir que la mise à niveau a réussi.

Pour le bundler ou d'autres gemmes, essayez de faire de même:

sudo gem install gem-to-install(for example, bundler) -n /usr/local/bin

À propos de l' -noption. Ne manquez pas ça. Vous pouvez consulter la documentation des gemmes si vous le souhaitez.

Ainsi, la solution consiste à trouver reinstalling the old gemun répertoire approprié.


1

Pendant que je fais de même, j'ai une autre erreur en disant que

ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError) Vous ne disposez pas des autorisations d'écriture pour le répertoire /Library/Ruby/Gems/2.3.0.

Ensuite, j'ai fait cela et j'ai bien travaillé.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Eu un même problème, résolution:

  1. Réinstaller Ruby

    brew install ruby

  2. Réinstaller Cocoa Pods

    sudo gem install cocoapods


1

Il s'agit d'un problème courant lors de la mise à niveau vers Mac OSX High Sierra.

Le correctif installe simplement Cocoapods (à nouveau):

sudo gem install cocoapods

1

L'exécution de ceci sur le terminal a fonctionné pour moi:

sudo gem install cocoapods

0

Après avoir utilisé la commande ci-dessous sur le terminal, je suis en mesure d'installer des cabosses de cacao dans mon projet.

sudo gem install cocoapods --source http://rubygems.org

0

J'ai également rencontré ce problème, mais je l'ai résolu de manière moins dramatique sous forme de ré-installation / mise à jour diverses. Je viens de mettre à jour la variable d'environnement PATH pour indiquer ma version ruby ​​existante (2.6.0).


0

J'ai eu le même problème après la mise à niveau vers Catalina.

  1. J'ai mis à jour l'installation de ruby ​​en installant d'abord brew et ruby ​​en suivant ces instructions. https://gorails.com/setup/osx/10.15-catalina (mais uniquement rubis, pas de rails, etc.)

  2. Ensuite, j'ai réinstallé les cocoapodes en suivant les instructions ci-dessus.

    sudo gem installer des cocoapodes

Ensuite, après tout cela, j'ai toujours reçu l'erreur ci-dessus. Ensuite, j'ai tapé «zsh» pour créer un nouveau shell et insérer les paramètres de configuration dans le fichier ~ / .zshrc. Après cette commande 'pod update' a fonctionné à nouveau.


0

Solution compatible avec les fichiers .zhs sans sudo

MacOS moderne décourage l'utilisation sudoet passe de bash à zsh, donc cette réponse peut être utile si vous n'allez pas vous battre avec la mode.

  1. Assurez-vous qu'il .zshenvexiste par touch ~/.zshenvcommande. Configurez l'environnement RubyGems en ajoutant les lignes suivantes:

    export GEM_HOME=$HOME/.gem
    export PATH=$GEM_HOME/bin:$PATH

    N'oubliez pas de relancer Terminal.

  2. Courez gem install cocoapods.

0
If cannot install new version cocoapods, example below:
1. Please remove Command line tools
sudo rm -rf /Library/Developer/CommandLineTools
2. Install new Command line tools version
sudo xcode-select --install
3. after installing run below command
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.