У меня есть довольно простое приложение, которое анализирует RSS-канал и показывает его содержимое в виде таблицы. Оно доступно в App Store. У меня интегрированы отчеты о сбоях Crashlytics. Недавно я получил два отчета. Это немного трудно расшифровать.
Это произошло на iPhone 6 под управлением iOS 10.2.1.
Это с iPhone 5 под управлением iOS 10.2.1.
Несмотря на то, что он говорит, что происходит сбой из-за нарушения конфиденциальности, я не получаю доступ к службам, для которых требуется разрешение в моем приложении.
Кроме того, поиск в com.apple.root.default-qos заставил меня поверить, что это может иметь какое-то отношение к фоновым потокам. Единственное место, где я использую фоновый поток, — это анализ данных RSS-канала.
DispatchQueue.global(qos: .background).async {
guard let data = try? Data(contentsOf: URL) else {
return
}
do {
let xmlDoc = try AEXMLDocument(xml: data)
if let items = xmlDoc.root["channel"]["item"].all {
self.posts.removeAll()
for item in items {
let title = item["title"].value ?? ""
// ...
self.posts.append(jobPost)
}
DispatchQueue.main.async {
self.saveposts(self.posts)
self.posts.sort { $0.publishDate > $1.publishDate }
self.tableView.reloadData()
UIApplication.shared.toggleNetworkActivityIndicator(show: false)
self.toggleUI(enable: true)
if self.refreshControl.isRefreshing { self.refreshControl.endRefreshing() }
}
}
} catch let error as NSError {
print("RSS parsing failed: \(error)")
self.showErrorAlert(error)
UIApplication.shared.toggleNetworkActivityIndicator(show: false)
self.toggleUI(enable: true)
if self.refreshControl.isRefreshing { self.refreshControl.endRefreshing() }
}
}
Я протестировал этот код на своем iPhone 5 под управлением iOS 9.3.5 и симуляторах под управлением iOS 10.2, но сбоев не произошло.
Есть ли другой способ отследить эту проблему?
Save Image
вUIActivityViewController
вызовет сбой, если, например, разрешение галереи не предоставлено. - person paulvs   schedule 10.03.2017saveToCameraRoll
в качестве исключенного типа активности. - person Isuru   schedule 10.03.2017