Ich habe eine App, die nur für einen meiner Tester abstürzt - niemand anderen. Aber es stürzt für sie konsequent ab. Es ist sehr merkwürdig.ABPeoplePicker Crash für nur eine Person
Details:
Sie in iPhone 4 hat und ein iPhone 3Gs
Die App stürzt auf allen Betriebssystemen auf beiden Telefonen
Die App stürzt mit allen egal Kontakte, wie sie
erstellt wurden, als sie mir ihre Kontakte sendet Sie funktionieren gut sowohl auf meinem iPHone 4 und meinem 3G (nicht s)
Sie ist der einzige, der jemals einen Absturz und es ist konsistent über beide Telefone und alle Betriebssysteme
Sie hat die App und das Provisioning-Profil deinstalliert und neu installiert
Sie synchronisiert ihr iPhone mit einem Windows m Achine Version von iTunes
Der Absturz passiert, wenn wir ABPeoplePicker verwenden.
Aus ihrer Perspektive sieht es aus wie die Minute, die sie eine Telefonnummer auswählt, die App stürzt ab. Natürlich ist sie in diesem Moment nicht in unserer App. Sie befindet sich in der Navigationsansicht ABPeoplePicker, die von Apple bereitgestellt wird. Aus dem Resymboled Crash Log sieht es so aus, als ob es tatsächlich abstürzt, wenn es versucht, zu unserer App zurückzukehren. Mit anderen Worten, ich kann keine Erwähnung finden, dass unsere App tatsächlich für den Absturz im Crash-Log verantwortlich ist (siehe unten). Es sieht so aus, als ob es nicht in der Lage ist, den Index der ausgewählten Telefonnummer zu bekommen, und es scheitert dann, wenn wir versuchen, in unsere App zurückzukehren, aber das ist eine Vermutung. Ich habe die Apple-Dokumente gelesen und versucht, Due Diligence zu tun, um zu lernen, wie man Crash-Logs liest, aber ich bin immer noch ratlos. Hier sind meine Fragen:
1. Weiß jemand, was Exception Codes: 0x00000000, 0x00000000 bedeutet?
2. Stimmt die Annahme, dass in Zeile 9 die tatsächlichen Probleme angesprochen werden? Und wenn ja, wie verstehe ich, was objc_exception_throw + 64 bedeutet?
3. Kann jemand etwas Licht auf das werfen, was dieses Unfallprotokoll das Problem sagt?
Incident Identifier:
CrashReporter Key:
Hardware Model: iPhone3,1
Process: My App [471]
Path:
Identifier: My App
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2010-12-06 16:32:44.088 -0600
OS Version: iPhone OS 4.0.2 (8A400)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Thread 0 Crashed:
0 libSystem.B.dylib 0x000791d0 __kill + 8
1 libSystem.B.dylib 0x000791c0 kill + 4
2 libSystem.B.dylib 0x000791b2 raise + 10
3 libSystem.B.dylib 0x0008d6fa abort + 50
4 libstdc++.6.dylib 0x00044a20 __gnu_cxx::__verbose_terminate_handler() + 376
5 libobjc.A.dylib 0x000059ec _objc_terminate + 104
6 libstdc++.6.dylib 0x00042df2 __cxxabiv1::__terminate(void (*)()) + 46
7 libstdc++.6.dylib 0x00042e46 std::terminate() + 10
8 libstdc++.6.dylib 0x00042f16 __cxa_throw + 78
9 libobjc.A.dylib 0x000048cc objc_exception_throw + 64
10 CoreFoundation 0x0001fb72 -[__NSArrayI objectAtIndex:] + 154
11 My App 0x00005a68 0x1000 + 19048
12 My App 0x00005dec 0x1000 + 19948
13 UIKit 0x000668f4 -[UIViewController view] + 104
14 UIKit 0x000784e4 -[UIViewController contentScrollView] + 16
15 UIKit 0x00078354 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 24
16 UIKit 0x00078252 -[UINavigationController _layoutViewController:] + 18
17 UIKit 0x00077d58 -[UINavigationController _startTransition:fromViewController:toViewController:] + 372
18 UIKit 0x00077b68 -[UINavigationController _startDeferredTransitionIfNeeded] + 176
19 UIKit 0x00066fa8 -[UINavigationController pushViewController:transition:forceImmediate:] + 600
20 UIKit 0x00066d40 -[UINavigationController pushViewController:animated:] + 28
21 My App 0x0000a29a 0x1000 + 37530
22 My App 0x0000bcba 0x1000 + 44218
23 AddressBookUI 0x00032cfc -[ABPeoplePickerNavigationController personViewController:shouldPerformDefaultActionForPerson:property:identifier:withMemberCell:] + 152
24 AddressBookUI 0x0003b8ce -[ABPersonViewControllerHelper personTableViewDataSource:selectedPropertyAtIndex:inPropertyGroup:withMemberCell:forEditing:] + 222
25 AddressBookUI 0x0004a17c -[ABPersonTableViewDataSource valueAtIndex:selectedForPropertyGroup:withMemberCell:forEditing:] + 40
26 AddressBookUI 0x00048c00 -[ABPersonTableViewDataSource tableView:didSelectRowAtIndexPath:] + 316
27 UIKit 0x00091f40 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 656
28 UIKit 0x0009db40 -[UITableView _userSelectRowAtIndexPath:] + 124
29 Foundation 0x00086c86 __NSFireDelayedPerform + 362
30 CoreFoundation 0x00071a54 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8
31 CoreFoundation 0x00073ede __CFRunLoopDoTimer + 854
32 CoreFoundation 0x0007485e __CFRunLoopRun + 1082
33 CoreFoundation 0x0001d8e4 CFRunLoopRunSpecific + 224
34 CoreFoundation 0x0001d7ec CFRunLoopRunInMode + 52
35 GraphicsServices 0x000036e8 GSEventRunModal + 108
36 GraphicsServices 0x00003794 GSEventRun + 56
37 UIKit 0x000062a0 -[UIApplication _run] + 396
38 UIKit 0x00004e10 UIApplicationMain + 664
39 My App 0x0000d694 0x1000 + 50836
40 My App 0x00002d00 0x1000 + 7424
Hier ist mein ABPeoplePicker Code.
#pragma mark ABPeoplePickerNavigationControllerDelegate methods
// Displays the information of a selected person
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
return YES;
}
// Does not allow users to perform default actions such as dialing a phone number, when they select a person property.
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier {
CFStringRef cfName = ABRecordCopyCompositeName(person);
self.selectedName = [NSString stringWithString:(NSString *)cfName];
CFRelease(cfName);
ABMultiValueRef allThePhoneNums = ABRecordCopyValue(person, kABPersonPhoneProperty);
// ABMultiValueGetIndexForIdentifier the exact value of the "identifier" passed to us.
NSString *number = (NSString *)ABMultiValueCopyValueAtIndex(allThePhoneNums, ABMultiValueGetIndexForIdentifier(allThePhoneNums, identifier));
self.selectedNumber = number;
[number release];
CFRelease(allThePhoneNums);
[self showDialOutToPartViewControllerWithName:self.selectedName andNumber:self.selectedNumber];
[peoplePicker dismissModalViewControllerAnimated:YES];
return NO;
}
// Dismisses the people picker and shows the application when users tap Cancel.
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker; {
[self dismissModalViewControllerAnimated:YES];
}
Interessant. Was Sie oben sehen, ist nach der Verwendung von symbolicatecrash und der DSYM. Ich werde versuchen herauszufinden, was ich falsch gemacht habe und was danach passiert. Danke für die Hilfe! – addzo
Hrm. Sieht so aus, als hätte man mir das falsche Crash Log geschickt. Wenn ich eine Wiederholung von 15 hätte, würde ich dich wählen! Jemand gibt Requisiten, um für mich zu täuschen! – addzo
Nun, wenn es Ihr Problem gelöst hat, nur meine Antwort als akzeptiert :) – makdad