Я использую NEHotspotConfigurationManager с iPhone на iOS 11 для подключения к определенной сети Wi-Fi, которая использует WPA2 enterprise.Сохранение сертификата в связку ключей и получение из связки ключей работает нормально.
Вот код:
let config = NEHotspotConfiguration(ssid: self.ssid)
let settings = NEHotspotEAPSettings()
// settings.isTLSClientCertificateRequired = true
settings.password = "********"
settings.username = "********"
settings.supportedEAPTypes = [NSNumber.init(value:
NEHotspotEAPSettings.EAPType.EAPPEAP.rawValue)]
let getquery: [String: Any] = [kSecClass as String:
kSecClassCertificate,
kSecAttrLabel as String: "myCert",
kSecReturnRef as String: kCFBooleanTrue]
var item: CFTypeRef?
let status = SecItemCopyMatching(getquery as CFDictionary, &item)
if status == errSecSuccess {
if let certificate = item as! SecCertificate? {
if settings.setTrustedServerCertificates([certificate]) {
print("completed setTrustedServerCertificates successfully
}
}
} else {
print("failed to retrieve \(status)")
}
config = NEHotspotConfiguration(ssid: "My wifi", eapSettings: settings)
func add(network: Network, completion: @escaping (Error?) -> Void) {
self.manager.apply(network.configuration) { (error) in
assert(Thread.isMainThread)
self.startUpdate()
completion(error)
}
// Start an update now. The comments associated with `refresh()` explain
// why I do this.
self.startUpdate()
}
Примечание. Я могу без проблем установить соединение Wi-Fi для WPA2.
Вопрос: что не так в конфигурации?Почему возникает ошибка «неверные настройки EAP», как ее решить?