AX
【iPhone】Interface Builder で Merge に失敗する問題
iPhoneアプリを開発してみようかなとちょっといろいろ挑戦している今日この頃。

日本人 あるいは その他2バイト文字を母国語で使用するプログラマー達は
いろいろ苦労しているんではないだろうか。

2バイト文字、つまりは日本語フォントを使っているとiPhoneアプリを開発する上で様々な問題が生じてくる。

まずは、開発者登録。
Appleの開発者用サイトが日本語に対応していないのだ。
こちらは当然日本人のなので日本語でアカウントを取得しているわけなのだが、
アカウント情報に2バイト文字(日本語)が含まれていると登録エラーになる。

で、システムでの自動登録が行えないのでAppleに直接問い合わせて
登録データを修正してもらう必要がある。

私の場合は、Web上の問い合わせフォームから
「登録エラーになりました。こんなメッセージでてるんですけど、どうすればいいのですか?」
的な内容で送信しました。

なかなか返事が来なかったので、英文で問い合わせたのと和文で問い合わせたのとで2回送った。
結果、10日くらいしてからそれぞれに返信が来た。

英文で問い合わせた方は、身分証明書をFaxしてください。と。
和文の方は、データを修正したのでもう一度登録してみてください。と。

二つのメールの内容が一致していなかったが、
とりあえず もう一度やってみろとあったので、やり直してみたら無事に登録できた。






その後 また日本語による問題が。。。

今度はiTunes Connectにログインできない。
なにやら権限がないと画面には出てくる。

で、結局何もできなかったのでまたAppleに問い合わせることに。
前回のこともあったので、和文で問い合わせてみた。
今のところまだ返信がないが、またなんかデータ修正されるのではないかと。。。


日本語による問題は登録周りだけじゃない。
開発ツールで Interface Builder(インターフェイスビルダー。以下 IB)というアプリがある。
このツールはアプリ名の通り アプリケーションのインターフェイスを作るためのアプリなのだが、
これを使っていてまた日本語の問題が発生した。

IBはプログラムコードを直接書くことなく インターフェイスをグラフィカルに(GUIで)
作成することを可能にするアプリです。
最終的には 「プログラムファイルの書き出し(Write Class Files...)」
という操作を行うことでプログラムコードを作成する。

で、書き出しを行ったファイルを直接編集してインターフェイス(画面描画)以外の処理を
直接コーディングしていくことになるのだが、コーディングしていくうちに
インターフェイスが変えたくなることも当然あるわけです。

そこで IB には、すでに編集してしまったファイルと「プログラムファイルの書き出し」の
操作で新しく作成されるファイルのマージ(差分の合併)を行う機能が用意されている。

しかし、どうもこのマージの機能がうまく動作していていないようなのである。
マージをすると FileMerge というアプリが起動され、ファイルの比較処理が行われるのだが、
何故かファイルが空っぽで表示される。
差分がない、とかではなく、空っぽである。新しく作成したファイルは空であり、また
編集中だったファイルもまた空であるというのだ。

明らかにおかしい。。。

そこで怪しかったのが、日本語。
プログラムは基本1バイト(半角英数字)で書くのですが、プログラム中にメモとして
コメントを日本語で書いたりします。その日本語がマージの処理で悪さをしているのではないかと。

ということで、プログラム中の日本語を一旦全消去してみました。
(私の場合は、自動生成された時に記述される開発者名くらいしか日本語はなかったんですけどね)

そしたら案の定 マージが上手くいきました。
で、確認のため また日本語を入れた状態でマージしてみると。。。

あ、あれ???
普通に出来てしまった。。。

ということは、どうやら自動生成されたファイルに入っている開発者名に変な情報が付加されている可能性が大きい。
ここを一旦消して元に戻すとマージが成功する。

どういうことなんだろう?まぁ、とりあえず問題が解決したからいいか(^^;
[PR]
by manodeldio | 2010-10-11 22:51 | プログラミング


<< 【iPhone】FlickFa... 【iPhone】カメラの位置情... >>