![](/img/trans.png)
[英]AddressBook - Crash in iOS app, ARC enabled, near CF objects manipulation
[英]iOS App Crash Log AddressBook
我向AppStore提交了應用程序,蘋果公司表示該應用程序在啟動時崩潰。 我在所有模擬器和物理設備上都對此進行了全面測試,但我無法復制它,一切正常。 但是,無論蘋果使用什么設備/過程,他們都說它在啟動時崩潰了。
我得到了崩潰日志,並在XCode中將其打開,並且能夠查看似乎崩潰的地方,但是其中的其他一切對我來說都是沒有意義的。 我無法解釋或說出原因。 僅查看它,似乎在嘗試獲取ABAutorization並獲取ABContacts時便崩潰了,但是我無法復制此問題,因此感到困惑。 希望有人可以幫助您:
Thread 4 name: Dispatch queue: com.apple.root.default-qos
Thread 4 Crashed:
0 libswiftCore.dylib 0x000000010032e4e8 0x1001b4000 + 1549544
1 libswiftCore.dylib 0x000000010030abf4 0x1001b4000 + 1403892
2 Phonelist 0x00000001001112f8 Phonelist.AddressBookEngine.getAllContacts (Phonelist.AddressBookEngine.Type)(Swift.AnyObject) -> () (AddressBookEngine.swift:247)
3 Phonelist 0x00000001001161b0 Phonelist.AddressBookEngine.(getABAuth (Phonelist.AddressBookEngine.Type) -> (Swift.String) -> ()).(closure #1) (AddressBookEngine.swift:189)
4 AddressBook 0x0000000185d2b284 __37-[ABTCC accessRequestWithCompletion:]_block_invoke + 44
5 TCC 0x0000000192ab56ec __TCCAccessRequest_block_invoke56 + 420
6 TCC 0x0000000192ab7524 __tccd_send_block_invoke + 40
7 libxpc.dylib 0x00000001980186b4 _xpc_connection_reply_callout + 44
8 libxpc.dylib 0x0000000198018644 _xpc_connection_call_reply + 36
9 libdispatch.dylib 0x0000000197e15368 _dispatch_client_callout + 12
10 libdispatch.dylib 0x0000000197e21408 _dispatch_root_queue_drain + 1148
11 libdispatch.dylib 0x0000000197e22758 _dispatch_worker_thread3 + 104
12 libsystem_pthread.dylib 0x0000000197ff12e0 _pthread_wqthread + 812
13 libsystem_pthread.dylib 0x0000000197ff0fa4 start_wqthread + 0
這是我的getAB()函數,以防萬一:
static func getABAuth(action: String){
var addressBook: ABAddressBookRef?
var error: Unmanaged<CFError>? = nil
if ABAddressBookGetAuthorizationStatus() == ABAuthorizationStatus.Authorized || ABAddressBookGetAuthorizationStatus() == ABAuthorizationStatus.NotDetermined{
Scripts.log("Access Recognized to address book")
addressBook = ABAddressBookCreateWithOptions(nil, &error).takeRetainedValue()
if addressBook == nil{
println(error)
return
}
ABAddressBookRequestAccessWithCompletion(addressBook){
(granted:Bool, err:CFError!) in
if granted {
//addressBook = addressBook
Scripts.log("Access Granted to address book")
if (action == "add"){
self.addContact(addressBook!)
}
if (action == "get"){
self.getAllContacts(addressBook!)
}
}
else {
println(err)
}
}
}
if ABAddressBookGetAuthorizationStatus() == ABAuthorizationStatus.Denied{
Scripts.log("Access denied to address book")
}
if ABAddressBookGetAuthorizationStatus() == ABAuthorizationStatus.Restricted{
Scripts.log("Access restricted to address book")
}
//return false
}
嘗試使用可選表達式:
addressBook = ABAddressBookCreateWithOptions(nil, &error)?.takeRetainedValue()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.