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.out
gibt 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?
ruby --version
über die KommandozeileAntworten:
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
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
Unter MacOS 10.14 mit Xcode 11 wird der nicht vorhandene Pfad gedruckt
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:Dies sollte jetzt korrekt gedruckt werden
Ebenso
gem install
sollte funktionieren, während dieses SDK ausgewählt ist.Verwenden Sie, um wieder das aktuelle Xcode 11 SDK zu verwenden
quelle
sudo xcode-select --switch / Library / Developer / CommandLineTools
ruby -rrbconfig -e 'setzt RbConfig :: CONFIG ["rubyhdrdir"]'
quelle
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
um Ihre Ruby-Konfiguration herauszufinden./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.sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
erneut ausführen, um festzustellen , ob sich der Pfad geändert hat./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!quelle