Hello!
After submitting two OSSystemExtensionRequest
(let's say Endpoint and Network extensions), when the user allows only one (endpoint) extension, we receive request: didFinishWithResult
callback for both manager delegates. This leads us to falsely believe that both our extensions are allowed.
We tried to prevent this by using propertiesRequestForExtension
where our (network) delegate will ask for properties, check if the given extension is enabled and then finish if it's ok. If it's not enabled, however, we receive no second callback when the user allows the other extension.
We thought that we would need to submit another OSSystemExtensionRequest
for the extension that wasn't allowed to receive a callback when it finally is. However, the second and all other consecutive requests immediately finish and we receive request: didFinishWithResult
even when the user does not allow the second extension.
Example:
- Endpoint and Network managers submit
OSSystemExtensionRequest
- User only allows Endpoint extension
- Endpoint manager checks the properties, finds out it's enabled and finishes
- Network manager checks the properties, finds out it's disabled
- Network manager sends another
OSSystemExtensionRequest
- Network manager immediately receives
request: didFinishWithResult
- Network manager checks the properties, finds out it's disabled
- ....
This loop ends when the user finally allows the network extension, when the manager finds out that it's enabled. Is there something we are missing? Shouldn't another OSSystemExtensionRequest
finish with requestNeedsUserApproval
. How should we go about this issue?
Many thanks, Denis