did not find header 'config.h' in framework 'ruby' と言われたら
どういう時に起きる?
Xcode や macOS の更新時に起きると思われます
なぜ起きる?
macOS/Xcode 間のバージョンがうまく噛み合っていない場合に、Xcode がシステムの ruby を参照した時に、存在しないパスを見に行ってしまうみたい。BigSur なのに Monterey 向けを探しに行ってしまう、みたいな感じ?
どうすれば良い?
Xcode が参照しようとしている universal-darwnXX (XXは数値) へのパスを用意してやれば良いらしい。例えば、universal-darwin21 はあるけど、universal-darwin20 がないような場合には、以下のようにする。
code:console
cd $(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0 && ln -s universal-darwin21 universal-darwin20