我遇到了一个问题,当我通过Xcode运行它时,我的应用运行良好,但手动启动时崩溃。我经历了很多帖子,但我找不到任何具体的答案。我检查了设备的日志,这里是一个片段,我认为是事故的原因:当不通过Xcode运行时,应用程序崩溃
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x0000000180ff5b9c objc_msgSend +28
1 AppSupport 0x0000000183159f0c _updateDetachedRecord + 32
2 AppSupport 0x0000000183159ffc CPRecordGetProperty + 52
3 AppSupport 0x000000018315a270 CPRecordCopyProperty + 24
4 AddressBook 0x0000000187774498 ABRecordCopyValueUnfiltered + 68
5 AddressBook 0x00000001877743bc ABRecordCopyValue + 68
我试图访问我的地址簿,并获取联系人的详细信息(无论用户点击),然后显示它在弹出窗口中。下面是代码片段:
NSString *firstName = (__bridge NSString *) ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *lastName = (__bridge NSString *) ABRecordCopyValue(person, kABPersonLastNameProperty);
NSString *company = (__bridge NSString *) ABRecordCopyValue(person, kABPersonOrganizationProperty);
NSString *title = (__bridge NSString *) ABRecordCopyValue(person, kABPersonPrefixProperty);
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
NSString *email = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(emails, 0));
ABMultiValueRef phoneNo = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSString *phnNo = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNo, 0));
ABMultiValueRef skyepeIDs = ABRecordCopyValue(person, kABPersonInstantMessageProperty);
NSDictionary *skyepeID = (__bridge NSDictionary *)(ABMultiValueCopyValueAtIndex(skyepeIDs, 0));
P.S:当我通过Xcode中运行的应用程序运行完全正常。
尝试关闭Swift编译器/代码生成下的构建设置中的发布版本的Swift编译器优化,如果仍然存在,那么尝试关闭整个模块优化 – Buntylm
您是否获取了地址簿在发布时间? –
或在启动时做其他事情? –