CocoaPods nie działają w systemie macOS High Sierra


163

Po aktualizacji do macOS High Sierra CocoaPods nie działa. Chociaż kuszące jest odejście od CocoaPods, niestety nie jest to obecnie objęte zakresem. Komunikat o błędzie znajduje się poniżej.

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

Zdaję sobie sprawę, że błąd wynika z uaktualniania Rubiego, ale co można naprawić? Próba zmuszenia CocoaPods do używania nowej wersji ruby ​​powoduje inne błędy.

Edit: Teraz mam zainstalowane Ruby 2.0z rvm install 2.0.0i rvm use 2.0.0a następnie ponownie uruchomione CocoaPods sudo gem install cocoapods. Wydaje się, że teraz działa.


Czy zaktualizowałeś narzędzia wiersza poleceń?
mat.

@matt Yes, sudo xcode-select -s /Applications/Xcode-beta.appi stamtąd postępuj sudo xcode-select --installzgodnie z GUI.
Maciej Swic

Myślałem o tych tutaj: developer.apple.com/download/more Często okazuje się, że narzędzia zewnętrzne nie działają, dopóki ich nie zainstaluję.
mat.

Odpowiedzi:


417

Według https://github.com/CocoaPods/CocoaPods/issues/6778 ponowna instalacja CocoaPods powinna rozwiązać ten problem:

sudo gem install cocoapods

2
u mnie też zadziałało, powinno być oznaczone jako zaakceptowane rozwiązanie
swalkner

17
Prosty "napar ponownie zainstaluj cocoapods" zadziałał (ponieważ uruchamia dokładnie to polecenie za ciebie). Dziękuję za zwrócenie uwagi.
Markus,

Chociaż to działa, z pewnością powinien to być problem CocoaPods, ponieważ nie jest w stanie zlokalizować zaktualizowanej wersji Rubiego. Prawdopodobnie ponowna instalacja po prostu sprawdza, czy instalacja jest ponownie i dlatego „naprawia” ją.
Hans Knöchel

gem install cocoapods - nie wyrzuca niejawnej konwersji zera na błąd łańcucha, ale "brew reinstalacja cocoapods" spełniło swoje zadanie. dzięki @Markus
krishnan

gem install -n / usr / local / bin cocoapods pomaga mi
Anupam Gupta

112

Po uaktualnieniu do systemu macOS High Sierra, napraw go za pomocą następujących poleceń:

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

po zakończeniu napisz poniższe polecenie:

pod install

To rozwiązanie zadziałało dla mnie ... !!!


1
Otrzymałem „BŁĄD: Podczas wykonywania gem ... (Errno :: EPERM) Operacja niedozwolona @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem” podczas uruchamiania pierwszego polecenia, ale uruchomienie drugiego nadal powodowało, że „instalacja pod” działała. Dzięki.
Bryce Sandlund

Pomimo „ostrzeżenia”, i tak chcę tu podziękować. To była jedyna rzecz, która działała dla mnie. Po prostu ponowna instalacja cocoapods (kilka razy) nie zrobiła różnicy, dopóki nie wykonałem obu tych kroków. Więc dziękuję!
huygir

Musiałem uruchomić aktualizację ruby ​​za pomocą następującego polecenia:sudo gem update -n /usr/local/bin --system
Paul Popiel

Pracował dla mnie (cocoapods 1.5.3).
atereshkov

27

Otrzymałem ten błąd podczas instalacji CocoaPods

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

I użyłem tego stwierdzenia. Zadziałało!

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

1
To jedyne rozwiązanie, które wydawało mi się skuteczne. Dzięki
Dan Beaulieu


9

To rozwiązało mój problem:

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

Proszę podać krótkie wyjaśnienie, co robi opublikowany kod, aby osoby, które są nowe w tej technologii, mogły się zmienić, aby zrozumieć i ponownie użyć Twojej odpowiedzi :-)
Mathieu VIALES

1
Osoby, które dopiero zaczynają przygodę z cocoapodami, powinny umieć czytać jak inni.
thibaut noah

@MathieuVIALES, "brew install ruby" zakłada, że ​​masz już program do pakowania Homebrew ( brew.sh ). To polecenie następnie instaluje (lub prawdopodobnie technicznie ponownie instaluje ruby, ponieważ w rzeczywistości potrzebujesz ruby, aby zainstalować sam Homebrew). Następna linia "gem install -n / usr / local / bin cocoapods" ponownie instaluje program CocoaPod (więcej na cocoapods.org ).
Eddie Eddie Eddie


6

Więc napotkałem ten problem również po aktualizacji do High Sierra i wygląda na to, że nastąpiły pewne zmiany w lokalizacji pliku, do którego miała dostęp struktura Ruby.

Możesz go rozwiązać za pomocą,

sudo gem install cocoapods

a następnie zaktualizuj również pody, aby uzyskać bezpieczne środki

pod repo update 

i w końcu

pod install

aby plik pod działał ponownie.

Mam nadzieję, że to pomoże :)


5

Spróbuj użyć

sudo gem update --system

Przed

sudo gem install cocoapods

To zadziałało dla mnie



5

Proces instalacji Cocoapods:

  1. sudo gem install cocoapods (jeśli masz jakiś problem z cocoapds, zaktualizuj plik klejnotów)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Dla mnie musiałem:

gem uninstall cocoapods
which pod

Nadal pokazywał to na ścieżce, więc go usunąłem. Upewniłem się, że nadal się nie pojawia.

Następnie

gem install cocoapods

Wreszcie ! Usunięcie starego pliku wykonywalnego pod przed zainstalowaniem cocoapods zadziałało dla mnie
Seb Fanals

4

Idź do terminala ...

krok 1). sudo gem zainstaluj cocoapods

po zakończeniu montażu następnie zainstalować strąki kakaowe

krok 2). aktualizacja repozytorium

Zakończony


3

Napotkałem również ten błąd po zainstalowaniu High Sierra.

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

Użyłem następującego stwierdzenia zidentyfikowanego przez Danha Huynha (patrz wyżej) i zadziałało!

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

1
To tylko powtórzenie istniejącej odpowiedzi , prawda?
Pang

to naprawiło to dla mnie
MiMo

3

MacOS High Sierra domyślnie używa Ruby 2.3. Po aktualizacji do niego niektóre stare rubiny mogą nie działać poprawnie. Ten problem pojawia się, gdy uruchomiłem polecenie bundle (bundler to rubinowy klejnot; ma narzędzie o nazwie bundle).

Tak więc, aby wyjaśnić, wszelkie stare klejnoty rubinowe (cocoapods, bundler itp.), Które próbują uzyskać dostęp do Ruby 2.0, nie powiodą się.

Rozwiązaniem jest ponowne zainstalowanie tych starych klejnotów w katalogu, w którym masz uprawnienia do zapisu.

Dla cocoapods,

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

da rade.

Możesz opcjonalnie zaktualizować swój system klejnotów, jeśli chcesz beforezainstalować:

sudo gem update --system

Może to spowodować wyświetlenie komunikatu, że aktualizacja nie powiodła się. Ale tak naprawdę, jeśli wpiszesz:

gem --version

Możesz zobaczyć, że aktualizacja się powiodła.

W przypadku pakietu lub innych klejnotów spróbuj zrobić to samo:

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

O -nopcji. Nie przegap tego. Jeśli chcesz, możesz sprawdzić dokumentację klejnotów.

Tak więc rozwiązanie polega reinstalling the old gemna umieszczeniu odpowiedniego katalogu.


1

Podczas gdy robię to samo, pojawił się inny błąd, mówiąc o tym

BŁĄD: Podczas wykonywania gem ... (Gem :: FilePermissionError) Nie masz uprawnień do zapisu w katalogu /Library/Ruby/Gems/2.3.0.

Potem zrobiłem to i działałem dobrze.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Miał ten sam problem, rozwiązanie:

  1. Zainstaluj ponownie ruby

    brew install ruby

  2. Zainstaluj ponownie Cocoa Pods

    sudo gem install cocoapods


1

Jest to częsty problem po uaktualnieniu do systemu Mac OSX High Sierra.

Poprawka polega po prostu na instalacji Cocoapods (ponownie):

sudo gem install cocoapods

1

Uruchomienie tego na terminalu zadziałało dla mnie:

sudo gem install cocoapods

0

Po użyciu poniższego polecenia na terminalu mogę zainstalować strąki kakao w moim projekcie.

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

0

Zmierzyłem się również z tym problemem, ale naprawiłem go w mniej dramatyczny sposób, jak różne ponowne instalacje / aktualizacje. Właśnie zaktualizowałem zmienną środowiskową PATH, aby wskazała moją istniejącą (2.6.0) wersję ruby.


0

Miałem ten sam problem po uaktualnieniu do Cataliny.

  1. Zaktualizowałem instalację Ruby, instalując najpierw brew i Ruby, korzystając z tych wskazówek. https://gorails.com/setup/osx/10.15-catalina (ale tylko ruby, nie rails itp.)

  2. Następnie ponownie zainstalowałem cocoapods zgodnie z powyższymi instrukcjami.

    sudo gem zainstaluj cocoapods

Potem po tym wszystkim nadal otrzymałem błąd powyżej. Następnie wpisałem „zsh”, aby stworzyć nową powłokę i pobrać ustawienia konfiguracyjne w pliku ~ / .zshrc. Po tym poleceniu „aktualizacja pod” działało ponownie.


0

Rozwiązanie przyjazne dla plików Sudo

Współczesny macOS zniechęca do używania sudobash do zsh i przechodzi z niego, więc ta odpowiedź może być przydatna, jeśli nie zamierzasz walczyć z modą.

  1. Upewnij się, że .zshenvistnieje na touch ~/.zshenvpolecenie. Skonfiguruj środowisko RubyGems, dodając następujące linie:

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

    Nie zapomnij ponownie uruchomić Terminala.

  2. Biegnij 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.