xcodebuildに使われるxcodeは確認しようねというメモ。
困ったこと
rakeした時に、SimulatorがiOS7になっていたため、configを確認した所、
$ rake config
---省略---
xcode_dir : "/Applications/Xcode5-DP.app/Contents/Developer"
---省略---
となっていた。
安直にRakefileに対して、
app.xcode_dir = '/Applications/Xcode.app/Contents/Developer'
を追記したところrakeはうまく動いてくれたのだが、この後motion-cocoapodsを入れた際に10分くらいハマった。
何度rakeしても、
$ rake
Build ./build/iPhoneSimulator-6.1-Development
Build vendor/Pods
xcodebuild: error: SDK "iphonesimulator6.1" cannot be located.
rake aborted!
Command failed with status (64): [/usr/bin/xcodebuild -project "Pods.xcodepr...]
/Library/RubyMotion/lib/motion/project/vendor.rb:178:in `block in build_xcode'
/Library/RubyMotion/lib/motion/project/vendor.rb:146:in `chdir'
/Library/RubyMotion/lib/motion/project/vendor.rb:146:in `build_xcode'
/Library/RubyMotion/lib/motion/project/vendor.rb:41:in `build'
/Library/RubyMotion/lib/motion/project/builder.rb:59:in `block in build'
/Library/RubyMotion/lib/motion/project/builder.rb:58:in `each'
/Library/RubyMotion/lib/motion/project/builder.rb:58:in `build'
/Library/RubyMotion/lib/motion/project/app.rb:76:in `build'
/Library/RubyMotion/lib/motion/project/template/ios.rb:42:in `block (2 levels) in <top (required)>'
/Library/RubyMotion/lib/motion/project/template/ios.rb:55:in `block in <top (required)>'
Tasks: TOP => build:simulator
(See full trace by running task with --trace)
と、iPhoneSimulator6.1を入れてるにもかかわらず見つからないと怒られる。
原因と解決策
Xcode5-DP版を入れているMacの場合、デフォルトのxcodeのパスがこのDP版に指定されている。
そのため、rakeした際、rubymotionのプロジェクト自体はXcode.app自体を見に行ってくれているが、cocoapods側はXcode5-DP.app側を見に行っていた模様。
解決策は簡単で、xcode-selectにてきちんとXcodeのパスを指定してあげようという事でした。
$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Xcode5で開発してもいいんじゃないかという気もする。