今までは、最新のiOSを載せていたiPod(retina4)で、iOS側のデバックを行ってきたのですが、retina3.5にゲームを修正するために古いiPhoneを利用しようとしたところ色々とエラーが出てきました。
具体的には、xcodeに「EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT……」とエラーが出ます。 これの解決方法が、cocos2dx特有のものでしたので、その解決方法をブログに書いていきたいと思います。
iOS Deployment Targetの差異のためおこる問題
エラーの原因はデバイスのiOSのバージョンと、 cocos2dxのTargetにある「iOS Deployment Target」が違っているために起こった問題です。
このエラーが出た時に、xcodeのコンソール画面に「dyld: lazy symbol binding failed: Symbol not found _objc_setProperty_nonatomic」というログが残っています。 これを手がかりに調べてみると以下のサイトが見つかりました。 [iOS]ライブラリ使用の注意点
ここに、デバック対象のiOSバージョンと、xcodeのプロジェクトのiOSのバージョンが違うために起こっているというのがわかりました。(具体的には、xcodeのバージョンの方が高い) そこで、画面上で修正しましたが、同じようなエラーが出ます。
これは、困ったなと思っていたところ、よくよくxcodeのプロジェクトを見てみると。
実はcocos2dxには、2つxcodeのプロジェクトがあります。 これをどちらも、デバックに利用するデバイスのiOSのバージョンに合わせないといけないのです。
この2つの「iOS Deployment Target」を修正すれば、無事テストをすることができました。
最後に
これを見つけるのに、アホみたいに時間を使ってしまいました。 ネットでの情報が全然なかったので、この記事を参考にしていただけるととても嬉しいです。
最近は、このようにゲームを作る以外のことが、全然うまくいっていないので、精神的・体調的に優れていない状態です。
気になる点
今回試そうとしたデバイスが、iPhone4sなのですが、ここでデバックすると、色が劣化して薄くなっている感じがします。 これは、設定の問題なのか、もしくはそういうものなのか。どうなのでしょうか?