Não é possível enviar vídeos grandes para o Facebook a partir do aplicativo iOS

Eu estou tentando fazer upload de arquivos de vídeo de arquivos grandes para o Facebook, mas, independentemente da abordagem adotada, o resultado é sempre o mesmo. O processo carrega entre 5 a 35 MB de dados e depois expira. Isso acontece no WiFi.

Eu tentei com o SDK do Facebook 3.1.1, biblioteca social do iOS (SLRequest) e AFNetworking.

A biblioteca social e a afnetworking fornecem erros de tempo limite, enquanto o SDK do Facebook apenas retorna um Código 5, a Operação Não Poderia Ser Concluída, HTML Error 200, mas se eu observar a atividade da rede via instrumentos, ele tem a mesma assinatura, sendo uma certa quantidade de megabytes sendo enviados antes de parar.

Observe que posso enviar vídeos menores sem qualquer problema, usando qualquer um dos três métodos.

Alguém encontrou este problema e encontrou alguma solução ou razões para isso?

p.s. Eu acredito que é um bug no Facebook e eu registrei um problema lá, se alguém quiser assiná-lo para encorajá-los a investigar (https://developers.facebook.com/bugs/265409976924087).

Código SDK do Facebook

NSData *videoData = [NSData dataWithContentsOfFile:videoUrlStr options:NSDataReadingMappedAlways error:&lError];
NSString *description = self.streamToShare.videoDescription;

    if (description == nil){
        description = @"";
    }
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:videoData, self.streamToShare.publishedStoryFileName,
                                       @"video/quicktime", @"contentType",
                                       self.streamToShare.name, @"title",
                                       description,@"description",
                                       nil];
[FBRequestConnection startWithGraphPath:@"me/videos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (error) {
                self.errorMessage = [NSString stringWithFormat:@"error: domain = %@, code = %d, description = %@", error.domain, error.code, error.localizedDescription];
            } 
}

Biblioteca nativa do iOS e código AFNetworking

[accountStore requestAccessToAccountsWithType:facebookTypeAccount
                                              options:@{ACFacebookAppIdKey: appID,ACFacebookPermissionsKey: @[@"publish_stream"],ACFacebookAudienceKey:ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) {
  if(granted){
    NSArray *accounts = [accountStore accountsWithAccountType:facebookTypeAccount];
    facebookAccount = [accounts lastObject];
    NSLog(@"Facebook Login Success");
    NSURL *videourl = [NSURL URLWithString:@"https://graph.facebook.com/me/videos"];
    NSURL *pathURL = [[NSURL alloc]initFileURLWithPath:self.streamToShare.publishedStoryURL isDirectory:NO];
    NSDictionary *params = @{
      @"title": self.streamToShare.name,
      @"description": description
    };
    SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:videourl parameters:params];
    [uploadRequest addMultipartData:videoData withName:@"source" type:@"video/quicktime" filename:[pathURL absoluteString]];
    uploadRequest.account = facebookAccount;
    NSURLRequest *urlRequest = [uploadRequest preparedURLRequest];
    NSMutableURLRequest *mutableUrlRequest = [urlRequest mutableCopy];
    [mutableUrlRequest setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
    [mutableUrlRequest setTimeoutInterval:60]; // adjusting this does not fix the issue

    // AF Networking Code                                                
    NSInputStream *stream = [[NSInputStream alloc] initWithData:videoData];
    [mutableUrlRequest setHTTPBodyStream:stream];
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:mutableUrlRequest];
    [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
       NSLog(@"%lld bytes out of %lld sent", totalBytesWritten, totalBytesExpectedToWrite, progress);
     }];
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
      NSLog(@"Facebook upload success");
      }   failure:^(AFHTTPRequestOperation *operation, NSError *error) {
      NSLog(@"Facebook upload error %@",error.localizedDescription);
      }
     }];
     [operation start];

     // iOS Native Library Upload - Commented out so AFNetworking could be tested                                               
     //NSURLResponse *urlResponse = nil;
     //NSError *urlRequestError = nil;
     /*[NSURLConnection sendSynchronousRequest:mutableUrlRequest returningResponse:&urlResponse error:&urlRequestError];
    if (urlResponse == nil) {
      // Check for problems
      if (urlRequestError != nil) {
         NSLog(@"Error %@", urlRequestError.localizedDescription);
      }
     }
     else {
       // Data was received.. continue processing
       NSLog(@"Worked!");
     }*/


  }else{
    // ouch
    NSLog(@"Permission not granted. Error: %@", error);
  }
}];

questionAnswers(1)

yourAnswerToTheQuestion