SIGKILLの後でアプリが動かなくなる件
さてさて、iPhoneアプリ開発の話でございます。
これまでも開発してるアプリのテスト中に何度かアプリが起動しなくなる(というか入力を受け付けなくなる)現象が起こってました。
で、その状況が
- Xcodeからアプリを実行させる(command + r)
- アプリを終了させる
- ホームボタン2度押しでマルチタスクリストを出して、裏に入ったプロセスを切る(コンソールにSIGKILLの表示)
- もう1度アプリを起動する(普通にアイコンをタップ)
- アプリが動かない
- アプリを終了する
- ホーム画面が真っ黒
って感じで、「うわー、こんなバグかかえたままリリースなんかできねえ」と思って(当たり前ですね)、いろいろテストしてたんですが、どうやらこれ、MacとUSB接続した状態でプロセス切るとたまに起こるみたいです。で、USB接続せずに、普通にホーム画面からアプリを立ち上げると、同じ操作をしてもまったく再現しない。
という、盲点でした。
うん、実際、今日この症状が出たアプリなんか、作り始めたばっかりでiAd表示してる程度の処理しかしてなかったんで、そんな致命的なエラーが出る場所なんか思いつかなかったんですよ。ハマったハマった。
うーん、ひょっとして、EXC_BAD_ACCESS調査用に
NSZombieEnabled=YES
とかに設定してるのも関係してるんじゃろか。
ZombieプロセスがiPhoneに残りっぱなしになっちゃうのかな?