Ошибка __NSCFLocalDownloadFile Ошибка 2 при создании временного

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

@synchronized (session)
{
    [[session downloadTaskWithURL:attachmentURL
                completionHandler:^(NSURL *temporaryFileLocation, NSURLResponse *response, NSError *error) {
                    if (error != nil) {
                        NSLog(@"error.localizedDescription %@", error.localizedDescription);
                    } else {
                        NSFileManager *fileManager = [NSFileManager defaultManager];
                        NSURL *localURL = [NSURL fileURLWithPath:[temporaryFileLocation.path stringByAppendingString:fileExt]];
                        [fileManager moveItemAtURL:temporaryFileLocation toURL:localURL error:&error];

                        NSError *attachmentError = nil;
                        attachment = [UNNotificationAttachment attachmentWithIdentifier:@"" URL:localURL options:nil error:&attachmentError];
                        if (attachmentError) {
                            NSLog(@"attachmentError.localizedDescription %@", attachmentError.localizedDescription);
                        }
                    }
                    completionHandler(attachment);
                }] resume];
}

Я использую FCM для push-уведомлений.

{
"to": "ffHjl2CblrI...",
"data": {
    "message": "Offer!",
    "image": "https://media.giphy.com/media/l4lR0Q5u91kTNJPsA/giphy.gif",
    "url": custom url,
    "mediaType": "gif",
    "type": "notification type"
},
"notification": {
    "body": "Body",
    "sound": "default",
    "title": "Title"
},
"content_available": true,
"mutable_content": true
}

Это мой контент.

Я использую NotificationExtension над кодом, который я использую для загрузки данных из push-уведомлений.

Я получил успешный ответ из сертификата разработчика. Если я проверяю с производственным сертификатом (обновить с предыдущим), я получил ошибку, как это

__NSCFLocalDownloadFile: error 2 creating temp file: /private/var/mobile/Containers/Data/PluginKitPlugin/7D6B57B4-DC4D-4F3E-8113-C8469BA66BBB/tmp/CFNetworkDownload_NQQfGi.tmp

Если я удаляю приложение и запускаю его снова, оно работает. Но если я обновляю версию с новым IPA, она не показывает изображение в уведомлении.

Что я скучаю, это проблема с сертификатом? Проблема с разрешением приложения?

Я использую отдельный идентификатор приложения (без конфигурации push-уведомлений) для UNNotificationServiceExtension,

Обновить

Также проверил с APNS, что тоже не работает.

Еще немного кода и пояснений по поводу APNS и содержимого полезной нагрузки.

  1. Уведомление Richmedia не работает в производственном сертификате

  2. Расширенное push-уведомление не работает должным образом после обновления IPA (то же самое IPA с перезаписью)

1 ответ

Я столкнулся с этой ошибкой, которая принадлежит PESIXErrorDomain и я уверен, что это ошибка iOS, которая, вероятно, появилась в iOS 10 вместе с другими ошибками.

Обходной путь, который я реализовал, состоит в том, чтобы сделать недействительным текущий сеанс, начать новый сеанс и начать новую задачу загрузки с новым сеансом с полученными данными возобновления.

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