Сбой: com.apple.root.default-qos

У меня есть довольно простое приложение, которое анализирует 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, но сбоев не произошло.

Есть ли другой способ отследить эту проблему?

1 ответ

Я бы дважды проверил все ваши разрешения. В моем случае, начиная с iOS10, вам нужны разрешения для сохранения материала в списке пользователей. В моем приложении я показывал общий ресурс по умолчанию, и всякий раз, когда пользователь выбирал "сохранить фотографию", приложение вылетало с одним из этих очень бесполезных сообщений об ошибках. я добавил

<key>NSPhotoLibraryAddUsageDescription</key>
    <string>Allow you to save charts and graphs from the app to your phone.</string>

к моему info.plist, clean & run, И все проблемы были решены.

Другие вопросы по тегам