2012年3月9日金曜日

Xcode4.3.1のバグ

iOS5.1の公開に合わせてXcodeも4.3.1(Lion専用)が公開された。

が、早速問題が多数出ている。
太字は重大なバグ。

(1)iPadシミュレーターでHOMEボタンが表示されない。
Retinaだと50%表示にしても縦1080でも枠付き表示しきれないからだと思われる。
外枠自体表示されないので、仕様変更であろう。
iOS4.x/5.xどちらも同じになってる。
メニューバーのハードウエア~ホームで押下をシミュレートできるが、
ホームダブルタップによるアプリ切り替えが出来なくて困る。
アプリの削除もやりにくい。
iPhoneシミュレーターはHOMEありで変更なし。

(2)シミュレーター上で[[UIDevice currentDevice]systemVersion]が@"Unknown”を返してくる。
実機では問題ないが、シミュレーターではデバイスまたはOSバージョンを変えても変化なし。
4.2.0まではちゃんとシミュレーターに設定したOSバージョンが返ってきてた。
バージョンチェックして動作を変えている場合、シミュレーター上では問題が出る。
なんかおかしいから調べてみて気がついた。
今のところ回避策が見当たらないので非常に困ってる。
→info.plistに独自キーを追加してそこにバージョンを「毎回打ち込んで」読み込ませることで、
当面回避。
なんていう手間。 やり方は1つ前の記事を参照のこと。早速役立った。

(3)ビルトインマクロ__VERSION__が"4.2.1~"になっている。
だめじゃん。

(4)シミュレーター上動作中でアプリがハングアップして落ちた場合、二度とシミュレーター上でアプリが実行できなくなることがある。
その状態でも実機ではデバッグできた。
シミュレーターのiPhone/iPadおよびバージョンを変えても改善しない。
シミュレーターおよびXcodeを再起動しても だめ。Mac自体を再起動してようやく復帰。
新しいデバッガーlldbのバグかも知れない。
1回だけ発生した。


(5)エディタで編集内容表示が消えてしまうことがある
スクロールすると戻る(ソースそのものには影響なし)。
2~3回発生。

(6)Xcode4.0.xほどではないが、遅くなった。
検索前とかビルド前にマウスカーソルが回る。
(Snapshotはとってないのに。)
せっかくv4.2.0で速くなったのに(4.1.0からだったかも) 。
→Lion自体の問題だと判明。

(7)writeToFileがエラーを発生することがある
これはXcodeのバグではないが、LionではSnowLeopardとファイルアクセス権限の設定が異なっているため、これが出る。
デバッグ中の中間ファイルが書き出されなくて調べてたらこれとわかった。writeToFile:@"ファイル名だけ"という書き方をしているとまずだめ。
フォルダを厳密に指定し、そこのアクセス権限を読み書き可能に設定していなければならない。

(8)シミュレーターでiOS5.0以上を選択したとき、UITextFieldおよびUITextViewをタップするとEXC_BAD_ACCESSで落ちる
自分のプログラムの問題かと思って調べ、その後Apple提供のサンプル「HelloWorld」で試したらこれも落ちる。そのくせ実機で動作させたらあっさり動いた。丸1日調査してたのがばからしい結果。100%再現する。
重大なバグ。これらを使っている場合、実機でしか動作確認できない状況。
なお、iOS4.xのシミュレーターではINVARID dictionaryというのが出てるが、一応動作には問題ない。
Xcode4.2.0まででは発生していない。

(9)実機をつないでデバッグしているとき、NSLog()の中に日本語があると文字化けする。
シミュレーターでは問題ない。環境設定のフォント設定の間違い、なんてこともない。
これは実機OSが4.3でも5.1でも同じに発生する。

(10)日本語ファイル名があるとgitでcommit出来ない
V4.2.0でも有ったバグ。直されてない。
最初からわかってれば全て英語ファイル名にしたんだけど、後からgit管理下に入れたもんで。 フリーのGitXを使えばOK。

(11)OrganizerのArchivesでアプリのアイコンが表示されない

(12)DistributionのCodeSigningが外れる
ファイルそのものが消えていた。再設定が必要。
しかも、それがArchiveを作るときにはわからず、アップロードするときにわかる。
さらに、そのアップロード時のエラーメッセージも変更されたのでわかりにくい。

(13)[UIColor colorWithPatternImage:]にもバグがあるらしい(未確認)


V4.2.0にあった他のバグの内、大問題だったSettingBundleが編集できないバグはさすがに修正されてるが、他は未確認。


とにもかくにも問題が多すぎて困る。問題が出るたびに調査に時間がかかってしまう。
V4.2.0に戻そうとしたが、Xcode4.2.0(Build 4C199)/4.1.0はLion上では動かない。

仕方ないので、もう1台有るMacのSnowLeopard上に4.2.0で開発環境を再構築することにしたが、メインマシンではないのでいつもそちらで開発するのはつらい。

Appleには猛省をして欲しい。
毎度のことながら、とにかくデバッグが足りなすぎ。いじる理由がないのに、
前のバージョンまで正常に動いてたところが動かなくなるのも多い。
儲かってるんだから、デバッグ要員を増やせ。

一応(10)まではAppleのフィードバック(http://www.apple.com/jp/feedback/)で報告はしておいたが、フィードバックの項目にXcodeがないのはどういうもんだか(OSで報告した)。Xcodeのバグ報告は受け付けないってか?
それともXcodeは全く別の場所にフィードバックがある?→developperのXcodeダウンロードの一番下にあったのね(Submit Bugs to Apple)。出し直した方が良いのか?


また、Xcodeの最新版はまだSnowLopard上でもサポートして欲しい。
Lionには画面共有とかまだ不具合があるから。せめてMountainLionが出て安定するまで。

OSのサポート、およびOS間のアプリ動作互換性はMicrosoftを大いに見習って欲しい。(ほぼ)無意味な下位互換切り捨てはやめてくれ。

6 件のコメント:

  1. ライオンでもxcode4.2.1が動きます。多分ライオン用のをダウンロードしたからだと思います。
    iOS5.1デバイスを繋いで4.3.1を起動。iOS5.1デバイスを認識させてから4.3.1をcmd+qで終了させ、4.2.1を起動するとSDK5.0でiOS5.1を開発できます。4.3.1は問題が多すぎるのでバージョンが上がるまではこれで行く予定です。

    返信削除
  2. ありがとうございます。

    が、動かないのはSnowLeopard用となっている4.2.0および4.1.0です(V4.2.0がSnowLeopard用最終版です)。
    4.2.1は元からLion用です。

    最終桁だけの違いでOSが違うって言うことの方がおかしいと思うんですけどね。

    V4.2.1は使ったことがなかったのですが、探してみます。まだあればいいのですが。

    返信削除
    返信
    1. なるほど〜確かに4.2.0と4.2.1で分けてましたね。xcode4.2.1はAppStoreでの配布だったからdmgファイルがなさそうだなぁ・・・

      自分も保存される先が変わったのが幸いとなり両方の環境でいられますが、サブ機はそのままいじっていないので2台持ちはかなり必要なファクターになりそうですね。

      削除
  3. Xcode4.2.1ですが、有りました。

    開発者の登録とログインが必要ですが、
    https://developer.apple.com/downloads/index.action#
    から探せば出てきました。
    4.3やもっともっと古いバージョンも出てきます。

    現在インストール実行中。うまくいけば、私も当面4.2.1にします。

    返信削除
    返信
    1. 良かった〜素晴らしいですw
      自分も活用させていただきます。

      削除
    2. V4.3.1をインストールしている状態でもV4.2.1は簡単に、問題なくインストールできました。

      旧環境フォルダはDeveloper-oldとリーネームされた上で、新規にDeveloperが作られます。
      MacOSはフォルダ名を変更してもDockからのリンクは切れないので安心(?)です。

      これで私も当面V4.2.1で開発です。

      削除