記事一覧

Scene transision doesn't work on iOS4?

前のポストにも書いた通り、iPhoneOS3.x 系のappを iOS4 対応するのは、まずビルドを通すのにすったもんだあるわけですが、さらにビルド通ったあともいろいろあったり。
ひとまず動いてるように見えたのだけど、シーンのトランジションがブツ切りになってしまってて、指定してあったスライドインが反映されてない。

ちょっと調べてみたらこれを見つけた。
http://www.cocos2d-iphone.org/forum/topic/7338
これは cocos2d 0.7.x の話なんだけど 0.8.2 でもおおよそ同じ。
ただ、変える場所は162行目の1行で大丈夫だった。

split = [(IntervalAction*)[actions objectAtIndex:0] duration] / duration;

As I said in my last two posts, Building iPhoneOS3.x-based app on iOS4 SDK causes lots of troubles, and now I've got another trouble even after the build's got a pass.

It seems to be working well at a first glance, but when a scene make a transition it ignores my code to let it slide in.

I searched around a bit and found this:
http://www.cocos2d-iphone.org/forum/topic/7338
This is a cocos2d 0.7.x issue but it goes about the same on cocos2d 0.8.2, too.
I only modified single line at 162 and worked fine.

split = [(IntervalAction*)[actions objectAtIndex:0] duration] / duration;

iPhoneOS Deployment Target

I knew that to let the iOS4-based binary work on iPhoneOS3.x just open the Build Settings to set "Base SDK" to iPhone Device 4.0 and "iPhoneOS Deployment Target" to iPhoneOS3.x.
But I was a bit confused because "iPhoneOS Deployment Target" cell doesn't appear unless you set Base SDK to iPhone Device 4.0 beforehand.
It almost gave me a heart attack because my deadline was about to come.


iOS4 SDKでビルドしたものをiPhoneOS3.xで動くようにするには
"ベースSDK" をiPhone Device 4.0 にして "iPhoneOS Deployment Target" を iPhoneOS3.x にすればいい、ということなのだけど、ちょっと戸惑ったのが、ビルド設定画面で まず先にベースSDKを iPhone Device 4.0 に設定してからでないと、iPhoneOS Deployment Target の項目自体が出て来ないという点。
分かればなんてことないんだけど急いでたからかなり焦った。

Upgrading SDK (continued)

iOS4 SDK でビルドが通らない理由は2つあった模様。
1) オブジェクト名が iOS4 で新たに導入された API とかぶっていた
2) cocos2d libraries のビルドターゲット設定を変えるのを忘れていた

理由 1) は細かく言うと2つあって、
一つは単純で、 AVPlayer という名前を普通の変数として使っていたというもの。これは納得。
もう一つはなんか不可解で、セレクタの名前に "player" というものを使っていて、これが何か悪さした風。
セレクタの名前だけ引っかかるってどういう状況??
他の名前にしたら通ったからいいけど・・。


I've found there were two reasons of build failure on iOS4 SDK.
1) Object name conflicts with newly introduced iOS API
2) Forgot to change the Target Setting of Cocos2d Libraries

Reason 1) had two sub-reasons:
One is pretty simple, I was using the name "AVPlayer" as a variable. This is reasonable and I can understand.
The other is pretty incomprehensible, I used the name "player" as a selector, which seems to have caused some confusion.
How can a single selector name cause such confusion???
Fix the name to other one and succeeded to build, anyway...