NEHotspotConfigurationErrorDomain Code = 8 внутренняя ошибка.

Я использую NEHotspotConfigurationManager с on iOS 11 iPhone, чтобы подключиться к определенной точке Wi-Fi, а затем отключиться от нее.

Вот код:

if (@available(iOS 11.0, *)) {
            NEHotspotConfiguration *configuration = [[NEHotspotConfiguration
                                                      alloc] initWithSSID:self.specififcWiFiSSID passphrase:self.specififcWiFiPassword isWEP:NO];
            configuration.joinOnce = YES;
          [[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError * _Nullable error) {
            NSLog(@"Error : %@",error.description);
          }];
        } else {
            [Router showOfflineMessage:message];
        }

Я использовал applyConfiguration, и все было хорошо, каждый раз, когда я хочу применить конфигурацию Wi-Fi, появляется предупреждение, предлагающее пользователю подключиться к определенной сети, но теперь ничего не появляется, и я получаю эту ошибку в завершенииHanlder:

NEHotspotConfigurationErrorDomain Code=8 "internal error."

Я использую конфигурацию удаления позже в коде, но, похоже, она тоже не работает:

[[NEHotspotConfigurationManager sharedManager] removeConfigurationForSSID:self.specififcWiFiSSID];

Вопрос: что случилось? Почему он остановился, мне предлагается подключиться к сети Wi-Fi, а также что означает эта ошибка?

ОБНОВЛЕНО: похоже, это была ошибка самой iOS, может помочь перезагрузка устройства. На данный момент после обновлений все работает.


person Yason Din'Alt    schedule 01.11.2017    source источник


Ответы (7)


На данный момент только перезапуск устройства решает проблему на некоторое время, а затем повторяется снова.

Полный журнал: Domain=NEHotspotConfigurationErrorDomain Code=8 "internal error." UserInfo={NSLocalizedDescription=internal error.}

Я пробовал звонить NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: ssid) каждый раз перед звонком:

let hotspot = NEHotspotConfiguration(ssid: ssid, passphrase: pwd, isWEP: false)
hotspot.joinOnce = true
NEHotspotConfigurationManager.shared.apply(hotspot) { (error) in
    completionHandler?(error)
}

Но проблема все еще возникает ...

person Julien    schedule 12.12.2017
comment
Любые обновления? У меня такая же проблема - через некоторое время появляется внутренняя ошибка, и мои возможности включены - person ironRoei; 05.12.2018
comment
Согласно eskimo, это должно быть исправлено в iOS 12.2. src: forum.developer.apple.com/thread/107851 - person MikeB; 27.03.2019
comment
если вы все еще сталкиваетесь с этой проблемой, следуйте приведенному ниже ответу Андреаса Нетцманна - person Zulfiqar; 05.05.2019
comment
Хотя это было исправлено в течение некоторого времени, оно снова появляется у нас в iOS 13.3 ... помогает только перезагрузка телефона. - person Michael; 13.01.2020

Если вы все еще испытываете это. Обязательно добавьте возможность HotSpot к используемому AppID, также добавьте его на вкладке конфигурации Xcode Target Capabilities и обязательно свяжите NetworkExtensions.framework.

Вкладка

Это помогло мне решить проблему.

person Andreas Netzmann    schedule 23.02.2018

У меня проблема с внутренней ошибкой (в iOS 12.0), и шаги воспроизведения следующие.

  1. Используйте NEHotspotConfiguration applyConfiguration API, чтобы показать предупреждение, предлагающее пользователю подключиться к сети WIFI
  2. Оставьте это оповещение примерно на 3+ минуты, затем нажмите «Подключиться».

Произойдет 2 проблемы.

  1. Обработчик завершения вызова applyConfiguration не будет вызываться
  2. Все попытки вызова NEHotspotConfiguration applyConfiguration завершаются неудачно с internal error.

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

person Egist Li    schedule 13.12.2018

Я была такая же проблема. Теперь я использую следующую логику: Перед звонком

    [[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError *error){ ... }

Проверяю, применялась ли эта конфигурация ранее, и если да - удаляю.

    [[NEHotspotConfigurationManager sharedManager] getConfiguredSSIDsWithCompletionHandler:^(NSArray<NSString *> * _Nonnull wifiList) {

    if ([wifiList containsObject:ssidToConnect])
    {
       [[NEHotspotConfigurationManager sharedManager] removeConfigurationForSSID:containsObject:ssidToConnect];
    }


    [[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError *error){
            completion();
    }}];        

У меня работает на iOS 12.1.4.

person iosuser2332    schedule 19.02.2019

У меня точно такая же проблема. Я даже пробовал выключать и включать Wi-Fi устройства точки доступа (но, конечно, с учетом того, что "внутренняя ошибка" могла бы показаться, что это в самой iOS, а не в устройстве).

Это появляется, когда вы работаете с отладчиком? Что касается меня, я заметил, что оставил свой iPhone настроенным для сетевого подключения к Xcode (окно «Устройства»> «Подключиться через сеть» отмечен). Отключение этого параметра, казалось, решило проблему.

Я буду держать эту страницу SO открытой на случай, если она вернется, и мне придется копаться еще глубже

person anabi    schedule 19.12.2017
comment
Думаю, вы правы, и подключение по сети могло быть причиной этой внутренней ошибки. Перезагрузка устройства по-прежнему должна помочь. - person Yason Din'Alt; 29.01.2018

У меня такая же проблема. Я пытаюсь подключиться к уже подключенному Wi-Fi, он показывает «уже связанный», иначе будет отображаться «внутренняя ошибка». Я проверил, что мой "Подключиться через сеть" не отмечен.

Меня действительно устраивает перезагрузка телефона. Иногда он показывает «Невозможно подключиться», но после перезапуска все работает нормально.

person Nupur Gupta    schedule 23.02.2018

В моем случае это произойдет, только если я попробую этот код на iOS Simulator (который не поддерживает возможность точки доступа).

person christian mini    schedule 21.02.2019
comment
Этот ответ на самом деле не отвечает на заданный вопрос. - person Johan Karlsson; 13.08.2019