iOSアプリが1回おきにクラッシュし、エラーが見つかりません


81

初めてアプリを起動したときは、すべて正常に動作しているようです。停止ボタンを押して作業を行い、もう一度起動すると、何かをロードする前にクラッシュするようです。停止を押し、もう一度実行を押すと、正常に動作します。私がプロセスを繰り返すまで。

これは、xcodeが「スレッド1:シグナルSIGABRT」でエラーを強調しているところです。明らかに、ここでは何も役に立ちません。

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
    }
}

デバッグコンソールには(lldb)以外は何も表示されません(したがって、この時点ではクラッシュせず、停止していると思います)したがって、BTこれを実行すると、次のようになります。

(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
    frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
    frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
    frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
    frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
    frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
    frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
    frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
    frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb) 

これが私がこれまでにしたことです:

  • 「クリーン」を実行しました
  • シミュレーターをリセットし、コンピューターをリセットしました
  • ビューコントローラのすべてのコードをコメントアウトしましたが、まだクラッシュします
  • アプリデリゲートのすべてのコードをコメントアウトしましたが、まだクラッシュします
  • しかし.... Xcode以外のデバイスでアプリを実行しましたが、完全に正常に動作しているようです。
  • (編集)さまざまなキャッシュフォルダーからxcodeとすべてのコンテンツ(シミュレーター、ドキュメント)を削除/再インストールしました(これにより、xcodeは新しいダウンロード後に古いものを自動的に再インストールできなくなります)。それでも、コマンドラインツールが保存されている場所を見つけることができません。それでもクラッシュします。

これらすべてにもかかわらず、アプリは毎秒/他の起動ごとにクラッシュします。

最新のXcodeアップデートまで問題はありませんでした。Xcodeのバグでしょうか?

(編集)OSXの最新の開発者リリースも実行しています。それが邪魔になるのでしょうか?


iOSシミュレーターおよび接続/切断されたデバイスで空のプロジェクトを実行しようとしましたか?
Reck Hou

@ReckHouさて、まったく新しいプロジェクトで同じ問題が発生しました。原因は何でしょうか?xcodeを再インストールする以外にそれを回避する方法はありますか?
Beau Nouvelle

すでにこの問題を抱えている人が2人います。(最後の更新後、同様のエラーが発生します)現在、バグが修正された次のXcode更新までAppCodeを使用しています。(私の質問のstackoverflow.com/questions/16113036/...
イリヤILIN

5
今日、OSX 10.8.4にアップデートした後、同じように見え始めました。OSX10.4.3のXcode4.6.2で問題はありませんでした。LLDBからGDBに切り替えると問題が解決したように見えるため、デバッガー(Xcode 4.6.2LLDBとOSX10.8.4の組み合わせ)が原因である可能性があります。
Matej Bukovinski 2013年

1
10.8.4にアップデートした後も同じようになります。他のすべての起動。シミュレータをリセットし、Xcodeを再起動しても、違いはありません。main()での即時クラッシュ。1つおきに実行します。GDBのアイデアに感謝します-それはここで機能しています。
グラハムパークス2013年

回答:


75

OS X10.8.4とLLDBの組み合わせのようです。ケンスターが言うように、GDBに切り替えると問題は解決します。

編集:
デバッグサーバーの競合状態が原因です(聞いています)。

LLDBを使い続けたい場合の修正方法は次のとおりです。アプリが既にシミュレーターで実行されているときに[実行]をクリックする代わりに、Xcodeで強制終了し(⌘-。)、「Xcodeが大好きです」と5回言って、もう一度実行します(⌘- R)。クラッシュしません、私はそれをテストしました。


Xcode4.6.3で修正されました


それは本当にうまく機能しません。打ち上げはほぼ毎回窒息します。GDBへの切り替えは、Appleが修正するまでは、今のところはるかに安定したソリューションです。
ジョニー2013年

2
あなたとアスカーは私の新しい個人的なお気に入りの人々です。これは私を狂気に駆り立て、修理のためにMBPを送ろうとしていました。
カレ2013年

10.9とXcode5では、GDBが削除され、すべてLLDBになりました。しかし、それはすべて正常に機能します!
Beau Nouvelle

ああ!非推奨のコンパイラに戻って、最新のコンパイラの(本当に苦痛な)バグを修正することは大きな問題です…しかし、選択の余地はありません。私はそれをしなければなりません。
MonsieurDart 2013年

4.6.3にアップデートすると、それが実行されました。バージョンがリリースされたことすら知りませんでした。
David H

11

私もこの問題を抱えていました。この投稿を見てください。Xcode4.6.2アプリは2回の実行ごとにクラッシュします

基本的に、デバッガーをLLDBからGDBに変更します。これはLLDBにバグがあるためだとは信じられません。


Oh My God ....修正しました。私はそれにとても慣れているので、プロジェクトを実行するたびに怒りの準備をし続けます。しかし、何も起こりません。ヒープに感謝します。私のバグレポートでAppleに知らせます。
Beau Nouvelle

2
情報をありがとう、昨日一日中私を狂わせていました。ここで検索する前に、(残りの)髪の毛をすべて抜くまでいつも待つのはなぜですか?笑。
Bertie 2013年

3

GDBに切り替えたり、デバイス/ホストを再起動しても、私の環境の問題は解決しません。

ただし、関連付けられたXCodeスキームのRunターゲットを変更して、自動的に起動しなくなり、代わりにHelloWorld.appが起動するのを待つ」ように変更しました。

唯一の欠点は、これがデバイス上でアプリケーションを手動で起動することを意味することです。その後、デバッガーが接続されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.