2016-07-22 4 views
0

Es gibt einen Fehler, der nur mit meiner App unter OS X 10.6 und OS X 10.7 auftritt: Die App stürzt beim Schließen ab.Absturz beim Schließen der App nur in OS X 10.6 und 10.7

Erklären es besser: wenn der Benutzer das App-Fenster schließt (durch Schließen der App) sieht der Benutzer einen Absturz-Dialog, was bedeutet, dass die App beim Schließen abstürzte.

Ich habe es geschafft, die Hilfe eines OS X 10.7-Benutzers zu bekommen, eine Debug-Version der App zu verwenden, sich vorzustellen, es würde ein Crash-Protokoll einfacher zu verstehen, aber nichts geändert.

Process: MyApp [838] 
Path: /Applications/MyApp.app/Contents/MacOS/MyApp 
Identifier: MyApp 
Version: ??? (???) 
Code Type: X86-64 (Native) 
Parent Process: MyApp [650] 

Date/Time: 2016-07-20 17:38:24.043 0200 
OS Version: Mac OS X 10.7.5 (11G63) 
Report Version: 9 

Crashed Thread: Unknown 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fff5fc01028 

Backtrace not available 

Unknown thread crashed with X86 Thread State (64-bit): 
rax: 0x0000000000000055 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000 
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x0000000000000000 
r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000 
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000 
rip: 0x00007fff5fc01028 rfl: 0x0000000000010203 cr2: 0x00007fff5fc01028 
Logical CPU: 0 

Binary images description not available 


External Modification Summary: 
Calls made by other processes targeting this process: 
task_for_pid: 0 
thread_create: 0 
thread_set_state: 0 
Calls made by this process: 
task_for_pid: 0 
thread_create: 0 
thread_set_state: 0 
Calls made by all processes on this machine: 
task_for_pid: 316 
thread_create: 0 
thread_set_state: 0 

Von Report Version und darüber hinaus ist alles immer genau die gleiche, mit Ausnahme der task_for_pid.

Ich weiß, es hat keinen Einfluss auf die Verwendung des Programms, da es nur nach dem Schließen des Programms passiert, aber es muss sicherlich ein Schmerz sein, einen Absturzbericht jedes Mal zu sehen, wenn Sie eine App schließen.

Erinnern, dass dieser Fehler nicht mit OS X 10.8 oder höheren Versionen auftritt, und dass ich das 10.11 SDK verwende.

+0

Dies könnte helfen: [Wie Debuggen Sie eine App für eine ältere Version von Mac OS X?] (Http://stackoverflow.com/questions/15882296/how-do-you-debug-an-app-for -an-ältere-Version-von-mac-os-x/15882805 # 15882805) – Willeke

+0

Verwenden von definiert wäre nur der Fall, wenn ich wüsste, was mit der App nicht stimmt. Um das SDK auf 10.6 zu setzen, müsste ich das SDK herunterladen und einen Hack auf Xcode machen, damit es das alte SDK akzeptiert, und am Ende würde es eine Ewigkeit dauern, das Problem zu finden, da es viele Syntaxen gibt, die es nicht waren möglich da hinten, wie 'array.count' oder' dictionary [key] = value; '. Sie würden fälschlicherweise als fehlerhaft erkannt werden. – vitormm

+0

suchen Sie nach Speicherbeschädigung. –

Antwort

0

Endlich habe ich das Problem gelöst. Obwohl OS X sagte, dass der Absturz meiner App gehörte, war es nicht genau das. In meiner applicationWillTerminate: Funktion habe ich eine binary throw NSTask ausgeführt, aber diese binäre kompiliert ist 10.9 + kompatibel, und das verursachte den Absturz.

Der Wiederaufbau der Binärdatei mit OS X 10.6 hat die Zielversion den Absturz behoben. Teilweise wie @Willeke vorgeschlagen, habe ich Snow Leopard auf meinem Mac installiert (Dual Boot), um meine App darin zu testen, also werde ich es jetzt in Snow Leopard und El Capitan testen; die ältesten und neuesten (während Sierra keine stabile Veröffentlichung bekommen).

Ich weiß nicht, warum dieser Fehler nicht auch in OS X 10.8 passiert ist; Wahrscheinlich hat Apple die Art und Weise geändert, wie sich das System auf diese Art von Problem einstellen sollte.

Verwandte Themen