मेरे पास एक ऐप है जो पता पुस्तिका का उपयोग करता है। आईओएस 6 में चलते समय यह कोड तब चलता है जब उपयोगकर्ता ऐसा कुछ करता है जिसके लिए एड्रेस बुक एक्सेस की आवश्यकता होती है।ऐप आईओएस 6 में दुर्घटनाग्रस्त हो गया जब उपयोगकर्ता संपर्क एक्सेस अनुमतियों को बदलता है
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
if (granted)
{
showContactChooser();
}
});
CFRelease(addressBookRef);
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
showContactChooser();
}
else
{
showAccessDeniedAlert();
}
यह पूरी तरह से काम करता है: मैं संपर्क जानकारी को पढ़ने में सक्षम हूँ और जब उपयोगकर्ता पहुँच से मना कर, एप्लिकेशन तदनुसार प्रतिक्रिया करते हैं।
हालांकि, उपयोगकर्ता यदि:
- एप्लिकेशन में संपर्कों पहुंचने देती है
- एप्लिकेशन इस्तीफा,
- सेटिंग्स करने के लिए> Privacy-> संपर्क चला जाता है और अनुप्रयोग के लिए संपर्क पहुँच अक्षम कर,
- एप्लिकेशन पृष्ठभूमि में चल रहा है, वहीं अनुप्रयोग,
- चलाता सेटिंग्स के लिए चला जाता है और एप्लिकेशन के लिए संपर्क का उपयोग सक्षम बनाता है,
ऐप तुरंत main()
के अंदर कोई अपवाद जानकारी या एक सार्थक स्टैक ट्रेस के बिना दुर्घटनाग्रस्त हो जाता है। मैंने "सभी अपवाद" और [NSException raise]
ब्रेकपॉइंट को चालू करने का प्रयास किया, लेकिन इससे मुझे और जानकारी नहीं मिली।
क्रैश को पुन: उत्पन्न किया जा सकता है भले ही ऐप लॉन्च के दौरान उपरोक्त कोड नहीं चलाए।
यहां क्या हो रहा है? क्या कोई कॉलबैक है जिसके लिए मुझे सदस्यता लेनी चाहिए?
नीचे rmaddy के उत्तर के अनुसार, यह एक क्रैश नहीं है, यह आईओएस ऐप को समाप्त कर रहा है। –
मेरे लिए भी यही समस्या है लेकिन यह मेरे ऐप के लिए स्थान अनुमति के लिए है :( –