[iOS] リズムくんにiOS 3.1.3 で問題発生、修正版Submit

昨日 2012/09/07 リズムくんのサポートページ に、下記のレポートあり。

iOS3.1.3のiPod Touchでダウンロードしましたが、起動しません。他のアプリは動いています。
アップルストアで初期化してこのアプリだけ再インストールしても同じでした。
8月に購入後一度も起動できていない状態です。なにか対処法はありますか。

正直、Deployment Target (対応バージョン) は4.0以上にしていたつもりだったのだが、App Storeのページを確認すると、確かに 3.0以上がサポート対象になっていた。
App Store  リズムくん

iOS 3.x は初代 iPod touch で確認していたのだが、最近調子が悪く動作確認に使えないことが多かったので確認がおろそかになっていたのだが、今回久しぶりに起動してみたところ、確かに起動途中で落ちてしまう。

どうやら iPod touch 初代だと NSZombieEnabled などをOnにしているとデバッグ起動すらしてくれないようだ。
Xcode 2

それらは一通りオフにすると、ちょっと先に進むが、やはり落ちる。

検索してみたら解決策は StackOverflow で見つかった。iOS 4.0で追加されたAPIを使っているためだ。
それは確かに落ちてしまう。
iphone – – UIWindow setRootViewController: equivalent in pre 4.0 – Stack Overflow

しかしそれを直してもまた落ちる。
今度は、進捗表示に使っている samvermette/SVProgressHUD が iOS 4.0 で追加された Blocks を使っているためだった。
iOS 4.0 未満では進捗表示はあきらめて、OSのバージョン番号を比較する方法 – 強火で進め でバージョン判定して呼び出さないことにして回避した。

もしくは

- (BOOL)respondsToSelector:(SEL)aSelector;

を使ってメソッドの存在を確認するのがよいだろう。

たまたまこのアプリでは Blocks を多用していなかったので、とりあえずここまでの対応で、起動して一通り動作することが確認できた。

このバージョンをリズムくん 1.4.1 としてリリースすることにする。
今回はサポートするけれども、確認がしんどいので次のバージョンアップからは iOS 3.x は非サポートとしたいなと思う。
多くのユーザはすでに iOS 5.x に移行していると思われ、iOS 4.x もサポートされなくなってきている昨今なので… そもそも 3.x はマルチタスクもサポートされていないくらい古いバージョンですし。

ということでご迷惑をおかけしましたがAppleの審査が終わり次第、近いうちにリリースされますのでよろしくお願いします。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.