2013年5月31日金曜日

iPhone/Androidゲームアプリ『ワイはスラッガー』リリースしました!

どうも、俺@仕事中です。

5/24(金)にcocos2d-xで開発したゲームアプリ『ワイはスラッガー』をリリースしました。
・iOS版はこちら
・Android版はこちら

使用したcocos2d-xのバージョンはv2.0.4です。




これまでcocos2d-iphonecocos2d-android-1を利用してきたのですんなりとcocos2d-xも利用できました。
よく出来てるね、cocos2d!

c++もだいたい問題なく入れました。
phpとかjavaとか経験ある人だと多分そんなに苦労することなくc++学習できると思います。
近いうちにcocos2d-xの記事書きます。

しかし、ゲーム開発は一般のwebシステム開発と違って、数字に強くある必要がありますね。。
物理的な計算とか時間的な計算とか、座標とか、、、結構苦労しました><

『ワイはスラッガー』是非一度DLして遊んでみて下さい!

以上でえぇぇぇぇぇぇす。

2013年5月24日金曜日

dyld: Symbol not found: _OBJC_CLASS_$_NSJSONSerializationでハマった

どうも、俺@帰宅です。

iOSアプリ開発しててハマったのでφ(..)メモメモ

iOSv5.0以上だと問題なく動作するのに、
iOS4.3端末だとビルドは通りますが実行するとタイトルにもある
dyld: Symbol not found: _OBJC_CLASS_$_NSJSONSerialization
Expected in: /System/Library/Frameworks/Foundation.framework/Foundation
のエラーが出ちゃいました。

あ、先に解決方法から書いちゃいますが、
僕の場合はFacebook-SDKのv3.5.1を使っていた為、iOS4.xサポート外だったというオチです。。
チェンジログをちゃんと読め、ということですね。
なのでここから、iOSv4をサポートしているFacebook-SDKのv3.2.1を落としてきて対応しました。

で、本題の
dyld: Symbol not found: _OBJC_CLASS_$_NSJSONSerialization
ですが、これはそのまま
「NSJSONSerializationが見つからねぇよ!」というエラーです。
なぜiOSv4.3端末で見つからねぇかと言うと、NSJSONSerializatoinクラスはiOSv5以上で利用可能だからです。
参考:Apple開発者サイト

でも、deployment targetを4.3に指定してるとどうしてもiOSv4.3で動作させなければいけません。

もう一つ手がかりとなるのが、Xcode上に表示される
dyld`dyld_fatal_error:
0x2fe01080: trap 
0x2fe01084: mov r0, r0
のようなエラーです。
これはiOSv5.0以上に対応しているが、
それ未満には対応していないframeworkを呼び出したりしている場合に出やすいエラーです。
まさに今回の現象にズバリマッチしています。

そういう場合は読み込んだframeworkを "Optional" にするなどして対応出来るのですが、
今回の僕の場合はどのframeworkもOptionalに出来ませんでした。
で、組み込んだframeworkやSDKを1つずつチェックしてて、
Facebook-SDKのChangelogに気付いたという事でした。

もしFacebook-SDK(iOS)を利用してて同様のエラーに遭遇した人は確認してみてください。


以上でぇぇぇぇえす。