我已经使用以下代码创建了网络管理器。但第一行调用一经运行,管理器就为零,因此其他任何方法都不会生效。任何人都可以让我知道我做错了什么吗?
NEVPNManager *manager = [NEVPNManager sharedManager];
NEVPNProtocolIPSec *p = [[NEVPNProtocolIPSec alloc] init];
p.username = @"MYUSERNAME";
p.passwordReference = [@"MYPW" dataUsingEncoding:NSUTF8StringEncoding];
p.serverAddress = @"[NetworkIP]";
p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;
p.sharedSecretReference = [@"SharedSecretHashCode" dataUsingEncoding:NSUTF8StringEncoding];
[manager setProtocol:p];
[manager setOnDemandEnabled:NO];
[manager setLocalizedDescription:@"VIT VPN"];
NSArray *array = [NSArray new];
[manager setOnDemandRules: array];
NSLog(@"Connection desciption: %@", manager.localizedDescription);
NSLog(@"VPN status: %li", (long)manager.connection.status);
[manager saveToPreferencesWithCompletionHandler:^(NSError *error) {
if(error) {
NSLog(@"Save error: %@", error);
}
}];
“
manager
”为零。请帮忙。提前致谢。 最佳答案
我为NEVPNManager
实例的问题找到了解决方案。
向应用程序使用此证书时,开发人员必须需要APPID
已启用VPN Configuration & controls
的相关证书。并且此应用必须在设备中运行。
因此,NEVPNManager
不会为nil,可以从设备的共享实例中改编。 (也来自NetworkExtension.framework
,可用于iOS8
及更高版本的设备)
可能这可以帮助遇到相同问题的任何人。