iOS 用のデフォルトアプリ?を実機(iPhone 4/5)で起動してみる。

で、今度は実機で起動してみようとするのですが…ハマりました。
何も考えずサクっと scheme で実機を指定して起動すると…リンカエラーです。

No such file or directory: '/Users/paraches/Library/Developer/Xcode/DerivedData/CordvaTest-adettccpnfqdeqevzgnbqgwhirra/Build/Products/Debug-iphoneos/libCordova.a

どうやら CordvaLib.a ができてないみたい。


なんでだろう? と、思ってググって見ると…。

こんなん見つけた。


あ〜 iOS Deployment Target: が確かに iOS 4.2 になってる!
と言う訳で、CordovaTest プロジェクトと中に含まれている CordovaLib プロジェクト両方の iOS Deployment Target を iOS 4.3 に変更。
更にアーキテクチャから iPhone 3G な armv6 を削除。
これで再度トライ!
を! 今度はエラーが変わった。

Undefined symbols for architecture armv7s:
  "_OBJC_CLASS_$_CDViewController", referenced from:
      _OBJC_CLASS_$_MainViewController in MainViewController.o
  "_OBJC_METACLASS_$_CDViewController", referenced from:
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

armv7s にシンボルが用意されてない?
どういうことだろう? v2.1.0 のリリースタイミングからして armv7s も対応してると思うのだけど…。


それじゃ armv7s も削除して再度トライ!
やった〜! 今度は起動したよ!


と、ここまで書いてなんなんだけど、実はこの件はたまたま何かがおかしかったみたい。
この後、別のプロジェクトを ./create して作ってみたのだけど、そっちのプロジェクトでは何も設定を触らずに実機で起動できた。
先に参考にした Google グループでも「やり直したらうまくいった」みたいな書き込みもあったのだけど、まさにそんな感じ。

実機で試そうとしたら CordovaLib.a が見つからない!ってエラーで CordovaLib.a ができていない場合は、もう一度プロジェクトを作成し直してみると良いかもしれない。