在我的应用中,我正在尝试在App load委托中配置VPN设置。我在我的app delegate中调用了以下方法
$rules = ['first_name' => '...', 'last_name' => '...', 'dob' => '...'];
$data = $this->validate($request, $rules);
Customer::create($data); // $data contains only first_name, last_name and dob
但我在- (void)configureVPN {
NEVPNManager *manager = [NEVPNManager sharedManager];
[manager loadFromPreferencesWithCompletionHandler:^(NSError * _Nullable loadError) {
if (loadError) {
NSLog(@"vpn setup error: %@", loadError);
} else {
[manager setOnDemandEnabled: YES];
NSMutableArray *rules = [[NSMutableArray alloc] init];
NEOnDemandRuleConnect *connectRule = [NEOnDemandRuleConnect new];
[rules addObject:connectRule];
[manager setOnDemandRules:rules];
[manager saveToPreferencesWithCompletionHandler:^(NSError * _Nullable saveError) {
if (saveError) {
NSLog(@"vpn setup error: %@", saveError);
} else {
NSLog(@"vpn config set");
NSError *connError;
[manager.connection startVPNTunnelAndReturnError:&connError];
if (connError) {
NSLog(@"Unable to connect to VPN: %@", connError);
} else {
NSLog(@"VPN connection established");
}
}
}];
}
}];
}
错误:
manager loadFromPreferencesWithCompletionHandler
我认为这是因为缺少功能,但功能已启用Failed to load the configuration: Error Domain=NEVPNErrorDomain Code=5 "permission denied" UserInfo={NSLocalizedDescription=permission denied}
。