正確在 XCode 4 上使用 MacRuby + RubyGems
昨天突然有個 idea 想做成 app ,拉起 MacRuby 和 XCode 寫起來。
最近版本的 MacRuby 跟 XCode 的整合已相當不錯,基本上安裝好後就可以用了,然而我還是遇上了一個 gem 的問題:
/Users/siuying/Library/Developer/Xcode/DerivedData/OOOO-dduzvbnelkxkfwbejosjlbcndmpk/Build/Products/Debug/OOOO.app/Contents/Resources/Controller.rb:10:in `<main>': no such file to load -- rdiscount (LoadError)
XCode 找不到我的 rdiscount gem。當然,事前我已經執行指令 macgem install rdiscount
安裝了 rdiscount,究竟為何 XCode 找不到呢?答案是 GEM_PATH 和 GEM_HOME。因為這台電腦之前已經安裝了不同的 Ruby ,再安裝 macruby 後,用 macgem 雖然可以正確安裝 gem ,但 XCode 就找不到。
解決方案是在 XCode 的 Scheme 上設定正確的 GEM_PATH 和 GEM_HOME。
預設的這兩個 environment variable 大概已被其他 ruby 用了,怎樣找到 MacRuby 的 GEM_HOME 和 GEM_PATH?最簡單的方法是改用 rvm。
- 安裝好 rvm 後安裝 macruby:
rvm install macruby
- 轉到 macruby 環境
rvm macruby
- 確認 GEM_PATH 和 GEM_HOME
echo $GEM_HOME; echo $GEM_PATH
- 再安裝你想要的 gem
gem install rdiscount
再到 XCode Run 就可以正確執行了。