我使用以下代码创建了网络管理器。但是一旦第一行调用运行,经理就为零,因此任何其他方法都不会受到影响。谁能告诉我我做错了什么?
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 "为 nil 。请帮忙。提前致谢。
Best Answer-推荐答案 strong>
我为 NEVPNManager 实例找到了我的问题的解决方案。
当应用开发者使用它时,必须需要其相关证书,其中 APPID 已启用 VPN Configuration & controls 。并且这个应用程序必须需要在设备中运行。
所以 NEVPNManager 不会是 nil 并且它可以从设备的共享实例中适应。 (这也来自 NetworkExtension.framework ,适用于 iOS8 及更高版本的设备)
也许这可以帮助遇到同样问题的任何人。
关于ios - NEVPNManager 实例显示为零,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31043178/
|