我使用以下代码创建了网络管理器。但是一旦第一行调用运行,管理器就会为零,所以任何其他方法都不会受到影响。谁能让我知道我做了什么错事?
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
"是零。请帮忙。提前谢谢。
答案 0 :(得分:1)
我找到了针对NEVPNManager
个实例的问题的解决方案。
使用此应用时,开发者必须需要APPID
已启用VPN Configuration & controls
的相关证书。并且此应用必须需要在设备中运行。
因此NEVPNManager
不会是nil,它可以从设备的共享实例进行调整。 (这也是NetworkExtension.framework
可用于iOS8
和更高级别的设备)
可能这可以帮助任何有同样问题的人。