Ошибка __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 ответ
Я столкнулся с этой ошибкой, которая принадлежит PESIXErrorDomain
и я уверен, что это ошибка iOS, которая, вероятно, появилась в iOS 10 вместе с другими ошибками.
Обходной путь, который я реализовал, состоит в том, чтобы сделать недействительным текущий сеанс, начать новый сеанс и начать новую задачу загрузки с новым сеансом с полученными данными возобновления.