it-swarm.com.de

iOS-App stürzt bei jedem zweiten Start ab. Fehler nicht gefunden

Wenn ich die App zum ersten Mal starte, scheint alles in Ordnung zu sein. Ich drücke auf die Stopp-Taste, mache etwas Arbeit und wenn ich es erneut starte, scheint es abzustürzen, bevor es überhaupt etwas laden kann. Drücken Sie Stopp, drücken Sie erneut Ausführen, und es funktioniert einwandfrei. Bis ich den Vorgang wiederhole.

Hier markiert xcode den Fehler mit "Thread 1: Signal SIGABRT". Offensichtlich hier nichts Sinnvolles.

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

Die Debug-Konsole zeigt außer (lldb) nichts an (ich nehme also an, dass sie anhält und jetzt nicht abstürzt). Wenn ich also eine BT durchführe, erhalte ich Folgendes:

(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) 

Folgendes habe ich bisher getan:

  • 'Clean' durchgeführt
  • Ich habe die Simulatoren zurückgesetzt und meinen Computer zurückgesetzt
  • Ich habe den gesamten Code im View-Controller auskommentiert, der immer noch abstürzt
  • Ich habe den gesamten Code im App-Delegaten auskommentiert, der immer noch abstürzt
  • ABER ... Ich habe die App auf einem Gerät außerhalb von Xcode ausgeführt und sie scheint einwandfrei zu funktionieren.
  • (BEARBEITEN) Ich habe xcode und den gesamten Inhalt (Simulatoren, Dokumente) aus den verschiedenen Cache-Ordnern gelöscht/neu installiert (dies verhindert, dass xcode die alten nach einem neuen Download automatisch neu installiert). Kann immer noch nicht finden, wo Befehlszeilentools aufbewahrt werden. Stürzt immer noch ab.

Trotzdem stürzen Apps immer noch jede Sekunde ab.

Ich hatte bis zum letzten Xcode-Update keine Probleme. Könnte es ein Xcode-Fehler sein?

(BEARBEITEN) Ich verwende auch die neuesten Entwicklerversionen von OSX. Könnte das stören?

81
Beau Nouvelle

Scheint eine Kombination aus OS X 10.8.4 und LLDB zu sein. Wie Kenster sagt, lässt der Wechsel zu GDB das Problem verschwinden.

Bearbeiten:
Es wird durch eine Racebedingung auf dem Debug-Server verursacht (wie ich höre).

Hier ist eine Korrektur, wenn Sie LLDB weiterhin verwenden möchten: Anstatt auf Ausführen zu klicken, während die App bereits im Simulator ausgeführt wird, töten Sie sie in Xcode (⌘-.), Sagen Sie fünfmal "Ich liebe Xcode" und führen Sie sie erneut aus (⌘- R). Es wird nicht abstürzen, ich habe es getestet.


Fix in Xcode 4.6.3.

75
nevan king

Ich hatte auch dieses Problem. Schauen Sie sich diesen Beitrag an. Xcode 4.6.2 App stürzt bei jedem zweiten Lauf ab

Ändern Sie grundsätzlich Ihren Debugger von LLDB zu GDB. Ich kann nicht glauben, dass dies daran lag, dass LLDB fehlerhaft war.

11
kenster

Ein Wechsel zu GDB oder ein Neustart von Gerät/Host löst das Problem in meiner Umgebung nicht.

Ändern Sie jedoch das Ausführungsziel im zugeordneten XCode-Schema so, dass es nicht mehr automatisch gestartet wird, sondern in "Warten Sie, bis HelloWorld . App gestartet wird"). tat.

Der einzige Nachteil besteht darin, dass die Anwendung manuell auf dem Gerät gestartet werden muss. Der Debugger wird dann verbunden.

2
Mekugi