iOS: NSURLSession «DNSServiceCreateDelegateConnection не удалось: ServiceNotRunning» - PullRequest
0 голосов
/ 31 марта 2019

Простой выбор URL с использованием следующего кода Obj-C:

    self.sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
    self.sessionConfiguration.allowsCellularAccess = YES;
    self.sessionConfiguration.timeoutIntervalForRequest = 30.0;
    self.sessionConfiguration.timeoutIntervalForResource = 60.0;
    self.sessionConfiguration.URLCache = nil;
    self.sessionConfiguration.HTTPMaximumConnectionsPerHost = 8;

    self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:nil];

     NSURLSessionDataTask *fetchDataTask = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)  {
          // some code here to handle the result
     }];

     [fetchDataTask resume];

Результаты НА НЕКОТОРЫХ УСТРОЙСТВАХ (iOS 12+) приводят к ошибке службы DNS:

Задание. <1> завершено с ошибкой - код: -999 Задача. <1> HTTP загрузка Ошибка (код ошибки: -999 [1:89]) dnssd_clientstub ConnectToServer: connect () -> Нет попыток: 1 dnssd_clientstub ConnectToServer: connect () -> Нет попыток: 2 dnssd_clientstub ConnectToServer: connect () -> Нет попыток: 3 dnssd_clientstub ConnectToServer: connect () ошибочный путь: / var / run / mDNSResponder Сокет: 4 ошибка: -1 ошибка: 1 операция не разрешено nw_resolver_create_dns_service_locked [C2] Сбой DNSServiceCreateDelegateConnection: ServiceNotRunning (-65563)

  • Работает без ошибок на симуляторе
  • На некоторых устройствах работает без ошибок (пробовал на iPhone 7, XS Max, iPad mini 4)
  • Перезагрузка устройства не помогает
  • Случайно запускается / останавливается на любом устройстве

Я могу найти в Интернете несколько тем об этой проблеме, но все они связаны с macOS, а не с iOS. (Предлагаемое решение состоит в том, чтобы отключить изолированную программную среду в целевых возможностях XCode, но этот параметр не существует в проектах iOS.)

...