Beim ersten Start der App scheint alles gut zu laufen. Ich drücke 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 hebt xcode den Fehler mit "Thread 1: Signal SIGABRT" hervor. Offensichtlich nichts Nützliches hier.
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
}
}
Die Debug - Konsole zeigt nichts außer (LLDB) (also ich seine Einstellung nehme an , an diesem Punkt nicht abstürzt) Also, wenn ich eine ausführen BT
das ist , was ich bekommen:
(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, stürzt immer noch ab
- Ich habe den gesamten Code im App-Delegaten auskommentiert, stürzt immer noch ab
- 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 alle Inhalte (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.
Trotz alledem stürzen Apps immer noch bei jedem zweiten / zweiten Start 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?
Antworten:
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 Race-Bedingung im Debug-Server verursacht (ich höre).
Hier ist ein Fix, wenn Sie LLDB weiterhin verwenden möchten: Anstatt auf Ausführen zu klicken, während die App bereits im Simulator ausgeführt wird, beenden Sie sie in Xcode (⌘-.), Sagen Sie 5 Mal "Ich liebe Xcode" und führen Sie sie erneut aus (⌘-) R). Es wird nicht abstürzen, ich habe es getestet.
Feste in Xcode 4.6.3.
quelle
Ich hatte auch dieses Problem. Schauen Sie sich diesen Beitrag an. Die 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.
quelle
Das Wechseln zu GDB oder das Neustarten von Gerät / Host löst das Problem in meiner Umgebung nicht.
Das Ausführen des Ziels "Ausführen" im zugehörigen XCode-Schema wurde jedoch so geändert, dass es nicht mehr automatisch gestartet wird, sondern "Warten auf den Start von HelloWorld .app" .
Der einzige Nachteil ist, dass dies bedeutet, dass die Anwendung manuell auf dem Gerät gestartet werden muss. Der Debugger wird dann verbunden.
quelle