Mam dość prostą aplikację, która analizuje kanał RSS i wyświetla zawartość w widoku tabeli. Jest dostępny w App Store. Zgłoszenie awarii Crashlytics jest zintegrowane. Niedawno otrzymałem dwa raporty. Są one nieco trudne do rozszyfrowania.Rozbiło: com.apple.root.default-qos
To zdarzyło się w iPhone 6 z systemem iOS 10.2.1.
To z iPhone 5 z systemem iOS 10.2.1.
Choć mówi, że upaść z powodu naruszenia prywatności, nie mam dostępu do jakichkolwiek usług, które wymaga zezwolenia w mojej aplikacji.
Również wyszukiwanie com.apple.root.default-qos prowadzi mnie do przekonania, że może to mieć coś wspólnego z wątkami tła. Jedynym miejscem, gdzie używam wątku tła, jest parsowanie danych kanału 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() }
}
}
testowałem ten kod na moim iPhone 5 z systemem iOS 9.3.5 i symulatorów systemem iOS 10,2 ale wystąpił żaden krach.
Czy istnieje inny sposób na znalezienie tego problemu?
To wygląda na problem z uprawnieniami, czy na pewno nie używasz czegoś, co wymaga pozwolenia, a urządzenie, na którym testujesz, przyznaje już to uprawnienie? Zobacz [to] (http://stackoverflow.com/a/39416858/1305067) i [to] (http://stackoverflow.com/questions/41011660/app-crashes-when-running-on-iphone-with- naruszenie-jako-wyjątek). Również tutaj znajduje się [lista uprawnień] firmy Apple (https://developer.apple.com/library/content/qa/qa1937/_index.html). – paulvs
Podwajałem wszystko. Na moim urządzeniu ma włączone standardowe dane komórkowe w Ustawieniach i to wszystko. Ponieważ moje urządzenie wciąż znajduje się w iOS 9, przetestowałem to ponownie, resetując symulator, który uruchamia system iOS 10.2 i ponownie instalowałem aplikację. Nadal nie ma awarii. Inną rzeczą jest to, że jeśli był to błąd związany z uprawnieniami, dostałbym całą wiadomość, której brakuje w komunikacie o błędzie z raportem o awarii, którego w tym przypadku nie miałem. – Isuru
Należy również zauważyć, że zgłoszono tylko dwa wystąpienia (po jednym) tych błędów. Inni użytkownicy mają sesje bez awarii. – Isuru