10

RSS 피드를 구문 분석하고 콘텐츠를 테이블보기로 보여주는 매우 간단한 앱이 있습니다. App Store에서 사용할 수 있습니다. Crashlytics 충돌보고 기능을 통합했습니다. 나는 최근에 두 가지 보고서를 받았습니다. 이들은 해독하기가 약간 어렵습니다.크래시 : com.apple.root.default-qos

iOS 10.2.1을 실행하는 iPhone 6에서 발생했습니다.

enter image description here

이 아이폰 OS 10.2.1를 실행하는 아이폰 5입니다. 그것은 개인 정보 침해에, 나는 내 응용 프로그램에서 권한을 필요로하는 모든 서비스에 액세스하고 있지 않다 인해 충돌 말한다 비록

enter image description here

.

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() } 
    } 
} 

나는 아이폰 OS 10.2 실행 내 아이폰 OS 9.3.5 실행 아이폰 5와 시뮬레이터에이 코드를 테스트하지만 충돌은 발생하지 않았다.

이 문제를 추적하는 다른 방법이 있습니까?

+1

권한 사용권 문제 인 것 같습니다. 권한이 필요한 항목을 사용하고 있는지, 테스트중인 장치가 이미 해당 권한을 부여했는지 확인하십시오. [this] (http://stackoverflow.com/a/39416858/1305067) 및 [this] (http://stackoverflow.com/questions/41011660/app-crashes-when-running-on-iphone-with- 예외로서의 위반). 또한 Apple의 [사용 권한 목록] (https://developer.apple.com/library/content/qa/qa1937/_index.html)도 있습니다. – paulvs

+0

나는 모든 것을 두 번 확인했다. 내 장치에는 설정에서 사용할 수있는 일반적인 셀룰러 데이터가 있으며 그 것입니다. 내 장치가 여전히 iOS 9에 있기 때문에 iOS 10.2를 실행하고 응용 프로그램을 다시 설치 한 시뮬레이터를 재설정하여 다시 테스트했습니다. 아직도 충돌이 없습니다. 다른 것은, 그것이 정말로 허가 관련 충돌이었던 경우, 나는이 경우에하지 않은 충돌 보고서와 함께 오류 메시지가 누락 된 전체 권한을 얻습니다. – Isuru

+0

또한이 오류 중 두 번만 (각각 하나씩)보고되었다는 점에 유의해야합니다. 다른 사용자는 100 % 무료 세션을 보유하고 있습니다. – Isuru

답변

3

모든 권한을 다시 확인합니다. 내 경우에는 iOS10부터 사용자의 카메라 롤에 물건을 저장할 수있는 권한이 필요합니다. 내 응용 프로그램에서 기본 공유 시트를 보여 주면서 사용자가 "사진 저장"을 선택할 때마다 응용 프로그램이 이러한 유용한 오류 메시지 중 하나와 충돌했습니다. 나는 나의 info.plistclean & run

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

을 추가했다. 그리고 모든 문제가 해결되었습니다.