Fehler bei der Installation von Cocoapods mit Edelstein

9

Ich verwende macOS Mojave und wenn ich versuche, Cocoapods mit gem zu installieren, wird der folgende Fehler angezeigt.

Native Erweiterungen erstellen. Dies kann eine Weile dauern ... FEHLER: Fehler beim Installieren der Cocoapods: FEHLER: Fehler beim Erstellen der nativen Gem-Erweiterung.

current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200302-707-1iveybq.rb extconf.rb mkmf.rb kann unter / System / Library keine Header-Dateien für Ruby finden /Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconf fehlgeschlagen, Code 1 beenden

Gem-Dateien bleiben zur Überprüfung in /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2 installiert. Ergebnisse protokolliert in /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out

Dieser Fehler tritt auf, wenn ich die folgenden Befehle ausführe.

sudo gem install cocoapods

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

Ich habe bereits xcode-Befehlszeilentools installiert und erhalte beim Ausführen die folgende Meldung xcode-select --install

xcode-select: error: Befehlszeilentools sind bereits installiert. Verwenden Sie "Software Update", um Updates zu installieren

Ich habe auch xcode-Lizenzvereinbarungen mit dem Befehl zugestimmt sudo xcodebuild -license

Die Fehleranmeldung /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.outgibt Folgendes an

aktuelles Verzeichnis: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteco $ mkmf.rb kann unter /System/Library/Frameworks/Ruby.fra$ keine Header-Dateien für Ruby finden

extconf fehlgeschlagen, Code 1 beenden

Was kann ich tun, um dieses Problem zu beheben?

Muljayan
quelle
Haben Sie Ruby installiert? Versuchen Sie es ruby --versionüber die Kommandozeile
Robert Crabtree
Hallo ja ich verstehe das. ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
Muljayan
Was ist der Inhalt der Protokolldatei? /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out
Robert Crabtree
Ich habe das Fehlerprotokoll
eingefügt
Ich würde vorschlagen, dass Sie sich das HIER
Robert Crabtree

Antworten:

11

Die Antwort darauf finden Sie hier , obwohl sie nichts mit dieser Frage zu tun hat. Unten finden Sie einen Ausschnitt der Antwort, die am besten funktioniert.

Für Xcode 11 unter macOS 10.14 kann dies auch nach der Installation von Xcode und der Installation von Befehlszeilentools und dem Akzeptieren der Lizenz mit geschehen

sudo xcode-select --install
sudo xcodebuild -license accept

Das Problem ist, dass Xcode 11 das macOS 10.15 SDK liefert, das Header für ruby2.6 enthält, nicht jedoch für ruby2.3 von macOS 10.14. Sie können überprüfen, ob dies Ihr Problem ist, indem Sie ausführen

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

Unter MacOS 10.14 mit Xcode 11 wird der nicht vorhandene Pfad gedruckt

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Xcode 11 installiert jedoch ein macOS 10.14 SDK /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk. Es ist nicht erforderlich, die Systemverzeichnisse durch Installieren der alten Header-Dateien zu verschmutzen, wie in anderen Antworten vorgeschlagen. Wenn Sie stattdessen dieses SDK auswählen, werden die entsprechenden ruby2.3-Header gefunden:

sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

Dies sollte jetzt korrekt gedruckt werden

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Ebenso gem installsollte funktionieren, während dieses SDK ausgewählt ist.

Verwenden Sie, um wieder das aktuelle Xcode 11 SDK zu verwenden

sudo xcode-select --switch /Applications/Xcode.app
Anshul Kataria
quelle
6

sudo xcode-select --switch / Library / Developer / CommandLineTools

ruby -rrbconfig -e 'setzt RbConfig :: CONFIG ["rubyhdrdir"]'

Hiền Nguyễn
quelle
Das hat bei mir funktioniert. Danke
dazzieta
1
  1. Excute: ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'um Ihre Ruby-Konfiguration herauszufinden.
  2. Wenn die Ausgabe ein nicht vorhandener MacOSX10.15-Pfad ist. Wie: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0 Sie sollten die Konfiguration korrigieren, indem Sie den nächsten Schritt ausführen.
  3. Excute: sudo xcode-select --switch /Library/Developer/CommandLineTools
  4. Sie können: ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'erneut ausführen, um festzustellen , ob sich der Pfad geändert hat.
  5. Die Ausgabe ist /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Dann können Sie sich entschuldigen gem install, um Cocoapods zu installieren!

Nico Pan
quelle
Arbeitete für mich :)
studentaccount4