Per-App VPN and SafariDomains testing

Hi,


I'm developing a per-App VPN with SafariDomains entries.

I've pushed my test configuration profile to the device. The VPN is started when I initiate a network request from my test application that was associated with the VPN using NETestAppMapping enrty in the info.plist.


However I'm not able to trigger the VPN from Safari when accessing domains configured under SafariDomains in the config.

Replies

The last time I tried this I found that

NETestAppMapping
and
SafariDomains
were mutually exclusive. That is, if you enable one then the other one is ineffective. So, when testing per-app VPN you need to test it with apps and with Safari separately.

I should stress that this is only a problem for testing; in production you don’t need

NETestAppMapping
and the production mechanism for specifying app mappings is compatible with
SafariDomains
.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thank you for the answer.


I've figured that out. Now I have another question. According to documentation I should not be able to specify single word for a SafariDomains, e.g. ".com" or ".us" and get all the traffic that is going to that Top Level Domain (TLD).

However in practice this seems to be possible, i.e. any networking going to the TLD I've specified in my SafariDomains is triggerring my VPN extension.

Now I have another question.

You didn’t actually ask a question (-: so I’m assuming you’re looking for input as to whether this is a bug in iOS or a bug in the documentation. Alas, I don’t know. My recommendation is that you file a bug about this inconsistency and we’ll see where that lands.

Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi eskimo, you mentioned `the production mechanism for specifying app mappings`. How can we implement it? May you explain it in detail, please?