2

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

        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 。请帮忙。提前致谢。

4

1 回答 1

1

NEVPNManager我为我的实例问题找到了解决方案。

当应用程序开发人员使用它时,必须需要其相关证书,其中APPID已启用VPN Configuration & controls. 并且这个应用程序必须需要在设备中运行。

在此处输入图像描述

所以NEVPNManager不会为零,它可以从设备的共享实例中进行调整。(NetworkExtension.framework这也是可用于iOS8和更高设备的)

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

于 2015-06-26T11:42:57.597 回答