Для меня это работает на iOS 12.1.4.

ользуюNEHotspotConfigurationManager с на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 и все было хорошо, каждый раз, когда я хочу применить конфигурацию WiFi, появляется предупреждение, которое предлагает пользователю подключиться к определенной сети, но сейчас ничего не появляется, и я получаю эту ошибку в завершенииHanlder:

NEHotspotConfigurationErrorDomain Code=8 "internal error."

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

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

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

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

Ответы на вопрос(7)

если я попробую этот код на симуляторе iOS (который не поддерживает функцию горячей точки).

перед звонком

    [[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.

и шаги воспроизведения следующие.

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

Там будет 2 проблемы.

Завершение обработчикаapplyConfiguration звонок не будет звонитьКаждые попыткиNEHotspotConfiguration applyConfiguration вызов не удался сinternal error после этого.

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

pot к используемому вами идентификатору AppID, а также добавьте его на вкладке конфигурации возможностей XCode Target и обязательно добавьте ссылку NetworkExtensions.framework.

Это решило проблему для меня.

-Fi устройства точки доступа (но, конечно, учитывая, что это «внутренняя ошибка», может показаться, что это в самой iOS, а не в устройстве).

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

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

 Yason Din'Alt29 янв. 2018 г., 14:58
Я предполагаю, что вы правы, и «Соединение через сеть» может быть причиной этой внутренней ошибки. Перезапуск устройства все равно должен сделать свое дело.
Решение Вопроса

Пока только перезапуск устройства устраняет проблему в течение некоторого времени, и затем это происходит снова.

Полный журнал: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)
}

Но проблема все еще происходит ...

 ironRoei05 дек. 2018 г., 12:04
Любые обновления? У меня та же проблема - через некоторое время я получаю внутреннюю ошибку, и мои возможности включены

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

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

 Bidou27 февр. 2018 г., 07:37
Это на самом деле не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажавЗадавать вопрос, Вы также можетедобавить награду привлечь больше внимания к этому вопросу. -Из обзора
 Nupur Gupta27 февр. 2018 г., 08:18
@Bidou Я обновил свой ответ

Ваш ответ на вопрос