Gurbakhshish Singh
Gurbakhshish Singh

Reputation: 1064

Getting Permission Denied error on manager loadFromPreferencesWithCompletionHandler

In my app I am trying to configure VPN settings in App load delegate. I am calling following method in my app delegate

- (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");
                    }
                }
            }];
        }
    }];
}

but I am getting error on manager loadFromPreferencesWithCompletionHandler

Error: Failed to load the configuration: Error Domain=NEVPNErrorDomain Code=5 "permission denied" UserInfo={NSLocalizedDescription=permission denied}

I thought it was because of missing capabilities but Personal VPN is enabled in capabilities.

Upvotes: 9

Views: 6594

Answers (3)

wlixcc
wlixcc

Reputation: 1492

  1. In my case, I had added the Capabilities correctly, but an error is still reported

  2. when I restart my iPhone , then run the project, every thing work fine

Upvotes: 0

Imran
Imran

Reputation: 2543

Go to Xcode -> Project -> Targets -> Capabilities and Enable VPN and Enable Network Extensions. enter image description here

Upvotes: 17

Mss iOS
Mss iOS

Reputation: 157

To fix the issue, go to Xcode > Project > capabilities and enable personal VPN.

Upvotes: 0

Related Questions