【cocos2dx】古いiOSバージョンのデバイスで、デバックができない時の解決方法。

今までは、最新のiOSを載せていたiPod(retina4)で、iOS側のデバックを行ってきたのですが、retina3.5にゲームを修正するために古いiPhoneを利用しようとしたところ色々とエラーが出てきました。

具体的には、xcodeに「EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT……」とエラーが出ます。 これの解決方法が、cocos2dx特有のものでしたので、その解決方法をブログに書いていきたいと思います。

iOS Deployment Targetの差異のためおこる問題

エラーの原因はデバイスiOSのバージョンと、 cocos2dxのTargetにある「iOS Deployment Target」が違っているために起こった問題です。

2013-9-15-fffsssssa

このエラーが出た時に、xcodeのコンソール画面に「dyld: lazy symbol binding failed: Symbol not found _objc_setProperty_nonatomic」というログが残っています。 これを手がかりに調べてみると以下のサイトが見つかりました。 [iOS]ライブラリ使用の注意点

ここに、デバック対象のiOSバージョンと、xcodeのプロジェクトのiOSのバージョンが違うために起こっているというのがわかりました。(具体的には、xcodeのバージョンの方が高い) そこで、画面上で修正しましたが、同じようなエラーが出ます。

2013-9-15-jjijdias

これは、困ったなと思っていたところ、よくよくxcodeのプロジェクトを見てみると。

2013-9-15-ddds

実はcocos2dxには、2つxcodeのプロジェクトがあります。 これをどちらも、デバックに利用するデバイスiOSのバージョンに合わせないといけないのです。

この2つの「iOS Deployment Target」を修正すれば、無事テストをすることができました。

最後に

これを見つけるのに、アホみたいに時間を使ってしまいました。 ネットでの情報が全然なかったので、この記事を参考にしていただけるととても嬉しいです。

最近は、このようにゲームを作る以外のことが、全然うまくいっていないので、精神的・体調的に優れていない状態です。

気になる点

今回試そうとしたデバイスが、iPhone4sなのですが、ここでデバックすると、色が劣化して薄くなっている感じがします。 これは、設定の問題なのか、もしくはそういうものなのか。どうなのでしょうか?