5
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]; 
} 

Używam FCM do powiadomienia push.Błąd __NSC FLocalDownloadFile błąd 2 tworzenie temp

{ 
"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 
} 

To jest zawartość mojego ładunku.

Używam NotificationExtension powyżej kodu, którego używam do pobierania danych z powiadomienia Push.

Otrzymałem odpowiedź powodzenia z certyfikatu programisty. Gdybym sprawdzić certyfikat produkcji (aktualizacja z poprzedniej) mam błąd jak ten

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

gdybym usunąć aplikację i uruchom ponownie to działa. Ale jeśli zaktualizuję wersję o nowy IPA, nie wyświetli obrazu w powiadomieniu.

Czego mi brakuje, Czy to wydanie certyfikatu? Czy problem z uprawnieniami do aplikacji?

Używam oddzielnego identyfikatora aplikacji (bez konfiguracji powiadamiania push) dla UNNotificationServiceExtension.

Aktualizacja

sprawdzone także z APNS do tego też nie działa.

Niewiele więcej kodu i wyjaśnienie o APNS i treść ładowność

  1. Richmedia notification notification not working in production certifcate

  2. Rich push notification not work properlly after update IPA (same IPA with overwirtten)

Odpowiedz

0

jakie napotkał ten błąd, który należy do PESIXErrorDomain i ja” Jestem pewien, że to błąd systemu iOS prawdopodobnie wprowadzony w iOS 1 0 wraz z other bugs.

Zaimplementowane przeze mnie obejście polega na unieważnieniu bieżącej sesji, rozpoczęciu nowej sesji i rozpoczęciu nowego zadania pobierania z nową sesją z danymi nabytego wznowienia.

+0

Ale, to jest praca dla certyfikatu programistycznego, a także certyfikatu sklepu z aplikacjami (przy użyciu testflight). – user3589771

+0

Nie wiem, czy to ogranicza się do testowania kompilacji, czy nie – Mousavian