ios 如何解决以编程方式连接到WPA2 WiFi网络时出现的“无效EAP设置- NEHotstConfiguration错误”

stszievb  于 2023-06-07  发布在  iOS
关注(0)|答案(1)|浏览(395)

我知道,要手动连接到WiFi网络,我可以执行以下步骤:
1.从iPhone设备中的设置
1.使用这三个参数:SSID、用户名、密码
1.之后,它要求信任证书,信任证书后,WiFi网络连接
我正在尝试使用iPhone应用程序以编程方式连接到WPA2安全的企业WiFi网络。下面是我的代码:

NEHotspotEAPSettings *settings = [[NEHotspotEAPSettings alloc]init];
settings.password = self.password.text;
settings.username = self.username.text;
settings.supportedEAPTypes = [NSArray arrayWithObjects:[NSNumber numberWithInteger:NEHotspotConfigurationEAPTypeEAPPEAP], nil];
NEHotspotConfiguration *configuration = [[NEHotspotConfiguration alloc]initWithSSID:self.ssid.text eapSettings:settings];
[[NEHotspotConfigurationManager sharedManager]applyConfiguration:configuration completionHandler:^(NSError * _Nullable error) {
if (error) { 
NSLog(@"Error: %@",error.localizedDescription);
} else {
NSLog(@“Connected”);
}
}];

但它给了我一个错误:
EAP设置无效:NEHotspotConfiguration EAP设置必须配置受信任服务器证书或受信任服务器名称
由于我没有任何可信的服务器证书或可信的服务器名称,我应该在NEHotspotEAPSettings的下面属性中设置什么(传递nil也会给我同样的错误)?

settings.trustedServerNames

在我的Android应用程序中,我的代码在没有任何证书的情况下运行得很好;这是iOS特有的。

btqmn9zl

btqmn9zl1#

在步骤3手动连接时(当它要求信任证书时),打开“更多详细信息”并尝试找出证书的“通用名称”。它通常看起来像您的公司域名,例如“wifi.example.com”。
然后用它初始化NEHotspotEAPSettings:

settings.trustedServerNames = @[ "wifi.example.com" ];

如果该证书没有使用安装在iOS上的已知信任根,它可能不会验证它,那么您可能必须使用setTrustedServerCertificates方法(请参阅docs -https://developer.apple.com/documentation/networkextension/nehotspoteapsettings/2875740-settrustedservercertificates?language=objc

相关问题