うさマス算数 VS バグ

先日、弊社iPhoneアプリうさマス算数」をバージョンアップ致しました。
アップデートの主な内容はバグ修正だった訳ですが…以下、顛末を書き連ねていきます。

起動後、画面が進みません

というメールが、iOS4.2.1リリース後に到着しました。
進まない?進まないとはどういうことですか?


うさマス算数では最初、名前を登録する必要があるのですが、いくら画面をタッチしても名前登録の為のキーボードが出てこないと…そんな馬鹿な…

でないッ


何故だぁーッ!と調査したところ、原因はこちら。
UITextFieldのbecomeFirstResponder | 小さいリンゴの物語
iOS4.2.1では、UITextFieldの「User interaction Enabledbecome」の値がNOだと、FirstResponderが動作しないということでした。
iOS4.2.1以前ではYESでもNOでも動作します)


そこを今更変更してくるか…!
でも、簡単な修正で済みそうなので良かった良かったといったところ。

修正…完了…


直ちに修正版をアップロード!

アップロードできませんよ?

直ちに修正版をアップロード!…ができない


といいますのも…私、このバグ修正時点でSnow LeopardがインストールされたMacを持っていなくて…
Xcodeのバージョンも古くて…
なのでベースSDKを3.1.3にしてビルドをしていた訳で…


2010年8月辺りから、Application Loaderを使用しないとiPhoneアプリがアップロードできなくなったのですが、ベースSDKを3.1.3でビルドしたファイルはアップロードできない?みたいです。。。*1


というわけでMacのOSをバージョンアップ!
…でも良かったのですが、古い環境を残しておきたかったのでMac miniを購入!

アルミボディにしばしうっとり…

ゆっくりOpenGL

さっそく新Xcodeにて(ベースSDKは4.2)ビルド!
…をしたら動きがもっさりもっさりに。。。


弊社のアプリでは大抵OpenGLを使用してグラフィックの描画を行っているのですが、iOS Developer Programができた頃のサンプルを基に作成してました。
今まではちゃんと動作していたのですが、新しい環境でビルドを行うと不具合が出る模様・・・これも作成し直しだ!


というわけで、自分が所持しているそのまま使える iPhoneアプリプログラムOpenGLで作るiPhone SDKゲームプログラミングを参考にOpenGLの部分を修正したところ、さようならもっさりもっさり!と相成りました。


オススメの2冊!

UITextFieldの行間が悲しいことになっていました

その後アプリを色々とチェックをしていると…iOS4では?iOS3と比べてUITextFieldの行間が広がっている

 

何故こんな所を変更するのか…
UITextFieldでは行間を変更できないので、テキスト内容を修正して事無きを得ました。
厳密なテキストレイアウトが必要な場合はCore Graphicsを使用するしかないのでしょうか?

せっかくなのでアイコンも

せっかくバージョンアップするので…すぐ対応できるアイコンくらいは変更しよう!
ということで、端末ごとにアイコンを変更する為のお役立ちブログはこちらです。
アイコンファイル関連情報のまとめ - 強火で進め
アイコンファイルの設定は順番が重要らしい - 強火で進め
一つのアプリでiPhone3G/iPhone4/iPad用のアイコンを入れる方法 | スマホアプリ開発記

Adhocの設定が微妙に変わっております

知り合いの方にもテストをしていただくため「」を参考にAdhocビルドを行う簡単なお仕事…と思いきや最新のXcodeでは何かが違う…?

記事の中では

  1. Xcodeのプロジェクトウィンドウからプロジェクト名の上で右クリックし、「新規ファイルの追加」をする。iPhoneOS-Code Signingグループから「Entitlements」を選択して「次へ」を押す。
  2. ファイル名をdist.plistとして保存する。
  3. 追加されたdist.plistを選択し、「get-task-allow」のチェックを外す。

ということで、dist.plistの「get-task-allow」の操作が必要になります。


しかし以前のXcodeではRootの中に「get-task-allow」というキーがあるだけでしたが、現在のXcodeではRootの中に「application-identifier」「keychain-access-groups」という2つのキーが…!
get-task-allowは何処へ…!?


何処へ行ってしまったのかはわからないのですが、対処方法としましては「application-identifier」の次に「get-task-allow」を手作業で追加すれば良いみたいです。
あとは上記リンクの通りに操作をすればOK!

ファイル名が日本語だが大丈夫か?

いよいよアップロードのためにDistributionビルドを決行!
…しかしファイル名が「うさマス算数.app」になってしまう…!
(右クリック→情報を見る、で確認すると「アルファベット名.app」なのですが)


ネットに散らばる情報によれば、Application Loaderでアップロードするファイルに2バイト文字が含まれているとアップロードできないという情報が多数。
とりあえず、zip圧縮した後にファイル名を1バイト文字だけに修正。
さて、どうなるか…


アップロードできました。
し、しかし審査は通るのか?


通りました。


というわけで…「うさマス算数」無事アップデートできました。
不具合が出ている時に購入されたユーザの皆様、大変ご迷惑をお掛けいたしました…!

*1:ベースSDK3.2以上じゃないと無理?