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 install
sollte 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