【发布时间】:2019-03-29 10:38:51
【问题描述】:
我遇到了一个大问题,我为 IOS 设备制作了一个 VPN,它在 appstore 上,运行良好,但是我在使用 macos 应用程序时遇到了问题,我使用相同的代码。相同的代码适用于 IOS 设备但它们不适用于 MacOS 应用程序。
问题说; 未提供 VPN 共享密钥。验证您的设置并尝试重新连接。
当我尝试连接到 vpn 时。
我用于连接 vpn 的代码
[[NEVPNManager sharedManager] loadFromPreferencesWithCompletionHandler: ^(NSError *error) {
NEVPNProtocolIPSec *p = [[NEVPNProtocolIPSec alloc] init];
p.serverAddress =ipAddress;
p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;
NSLog(@"vpn connecting to ip %@",ipAddress);
p.username=@"vpnuser";
p.sharedSecretReference = [KeyChainHelper load:sharedSecret];
p.passwordReference = [KeyChainHelper load:password];
// NSData * data = [self searchKeychainCopyMatching:sharedSecret];
p.disconnectOnSleep = NO;
[NEVPNManager sharedManager].protocolConfiguration=p;
NSMutableArray *rules = [[NSMutableArray alloc] init];
NEOnDemandRuleConnect *connectRule = [NEOnDemandRuleConnect new];
[rules addObject:connectRule];
[[NEVPNManager sharedManager] setOnDemandRules:rules];
[[NEVPNManager sharedManager] setLocalizedDescription:@"VPN Fire"];
[[NEVPNManager sharedManager] setEnabled:YES];
[[NEVPNManager sharedManager] saveToPreferencesWithCompletionHandler: ^(NSError *error) {
NSLog(@"Save VPN to preference complete");
if (error) {
NSLog(@"Save error: %@", error);
}
NSError *startError;
[[NEVPNManager sharedManager].connection startVPNTunnelAndReturnError:&startError];
delayStart(5)
NSLog(@"%@",[NEVPNManager sharedManager]);
NSLog(@"%@",[NEVPNManager sharedManager]);
delayEnd
if(startError) {
NSLog(@"Start error: %@", startError.localizedDescription);
}
}];
}];
这里我放了一些截图;
【问题讨论】:
-
你解决了这个问题吗?
-
@jarvis12 你有什么答案吗?我有同样的问题。
标签: ios objective-c xcode macos vpn