NEVPNManager实例显示为nil

时间:2015-06-25 06:51:45

标签: ios objective-c iphone frameworks nevpnmanager

我使用以下代码创建了网络管理器。但是一旦第一行调用运行,管理器就会为零,所以任何其他方法都不会受到影响。谁能让我知道我做了什么错事?

        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"是零。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我找到了针对NEVPNManager个实例的问题的解决方案。

使用此应用时,开发者必须需要APPID已启用VPN Configuration & controls的相关证书。并且此应用必须需要在设备中运行。

enter image description here

因此NEVPNManager不会是nil,它可以从设备的共享实例进行调整。 (这也是NetworkExtension.framework可用于iOS8和更高级别的设备)

可能这可以帮助任何有同样问题的人。