经过 8 天和一次小的元数据修复后,我很高兴我的应用程序出现在应用程序商店中。但不幸的是,它在我女朋友的 iPhone IOS 8.3 上崩溃了,而我在创建它时考虑的是 8.1。
1/由于这是我的第一个应用程序,我在哪里可以找到我的应用程序的崩溃报告(如果存在)?
2/安装应用后如何查看联系人授权?
3/将联系人添加到联系人列表时,崩溃的原因可能是什么?
@IBAction func addToContacts(sender: AnyObject) {
let authorizationStatus = ABAddressBookGetAuthorizationStatus()
switch authorizationStatus {
case .Denied, .Restricted:
//1
print("Denied")
displayCantAddContactAlert()
case .Authorized:
//2
print("Authorized")
addVisitorToContacts()
case .NotDetermined:
//3
print("Not Determined")
promptForAddressBookRequestAccess(addContacts)
}
print("Add to contacts")
}
// MARK: - Permissions
func promptForAddressBookRequestAccess(addContacts: UIButton) {
//var err: Unmanaged<CFError>? = nil
ABAddressBookRequestAccessWithCompletion(addressBookRef) {
(granted: Bool, error: CFError!) in
dispatch_async(dispatch_get_main_queue()) {
if !granted {
print("Just denied")
self.displayCantAddContactAlert()
} else {
print("Just authorized")
self.addVisitorToContacts()
}
}
}
}
addToContacts函数
func addVisitorToContacts() {
let selectedVisitor = self.selectedVisitor!
print(" hello \(selectedVisitor.sFirstName!) ")
if let visitorRecordIfExists: ABRecordRef = getVisitorRecordCoreData(selectedVisitor) {// was 2
displayContactExistsAlert(visitorRecordIfExists)
return
}
let visitorRecord: ABRecordRef = makeAndAddVisitorRecordCoreData(selectedVisitor)
let contactAddedAlert = UIAlertController(title: "\(selectedVisitor.sLastName!) added.",
message: nil, preferredStyle: .Alert)
contactAddedAlert.addAction(UIAlertAction(title: "Add 2 \"Visitors\" Group", style: .Default, handler: { action in
self.addVisitorToGroup(visitorRecord)
}))
contactAddedAlert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil))
presentViewController(contactAddedAlert, animated: true, completion: nil)
}
最佳答案
在 addVisitorToContact
中,您打开所选联系人的名字和姓氏,创建联系人时这两个都不是必填字段。我的猜测是您正试图解包一个 nil 值,因此导致崩溃。
(为了将来检查崩溃信息,我建议在您的应用中安装 Fabric。它是免费的。)
关于ios - 将人员添加到联系人时应用商店中的应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021080/