UNNotificationServiceExtension иногда не показывает изображение

Я создал подкласс UNNotificationServiceExtension, чтобы отображать удаленное вложение в уведомлении. Случайно вложение не отображается.

Проблему трудно воспроизвести, но некоторые пользователи сообщают, что после получения удаленного уведомления с прикрепленным изображением они не видят изображение. После некоторой отладки я столкнулся с этой проблемой один раз. Я заметил, что у downloadTask() был пустой location, но код состояния response был 200.

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    // ...

    // Dowload remote media file
    URLSession.shared.downloadTask(with: attachmentUrl) { (location: URL?, response: URLResponse?, error: Error?) in
        // ...

        self.contentHandler!(self.bestAttemptContent!)

    }.resume()
}

Кроме того, переменная error содержала:

"Error Domain=NSPOSIXErrorDomain Code=2 \"No such file or directory\" 
UserInfo={NSErrorFailingURLKey=https://<url_to_media_attachment>, NSErrorFailingURLStringKey=https://<url_to_media_attachment>}"

Кажется, что вложение получено правильно, но URLSession теряет location URL для извлеченного вложения. Я понятия не имею, в чем причина этой проблемы.

Я тестировал на реальном устройстве iPhone 6S Plus, iOS 10.3.3.

У кого-нибудь была похожая проблема? Любое предложение, что я мог сделать неправильно?


person rafalkitta    schedule 31.07.2017    source источник