Property List Key

Network Extensions Entitlement

The APIs an app can use to customize networking features.

Details

Key
com.apple.developer.networking.networkextension
Type
array of strings

Possible Values

dns-proxy

The APIs you use to proxy DNS queries.

app-proxy-provider

The APIs you use to proxy TCP and UDP connections.

content-filter-provider

The filter APIs you use to allow or deny network connections created by other apps on the system.

packet-tunnel-provider

The APIs you use to tunnel IP packets to a remote network using any custom tunneling protocol.

dns-proxy-systemextension

The APIs you use to proxy DNS queries, when signed with a Developer ID profile.

app-proxy-provider-systemextension

The APIs you use to proxy TCP and UDP connections, when signed with a Developer ID profile.

content-filter-provider-systemextension

The filter APIs you use to allow or deny network connections created by other apps on the system, when signed with a Developer ID profile.

packet-tunnel-provider-systemextension

The APIs you use to tunnel IP packets to a remote network using any custom tunneling protocol, when signed with a Developer ID profile.

Discussion

To add this entitlement to an iOS app or a Mac App Store app, enable the Network Extensions capability in Xcode.

To add this entitlement to a macOS app distributed outside of the Mac App Store, perform the following steps:

  1. In the Certificates, Identifiers and Profiles section of the developer site, enable the Network Extension capability for your Developer ID–signed app. Generate a new provisioning profile and download it.

  2. On your Mac, drag the downloaded provisioning profile to Xcode to install it.

  3. In your Xcode project, enable manual signing and select the provisioning profile downloaded earlier and its associated certificate.

  4. Update the project’s entitlements.plist to include the com.apple.developer.networking.networkextension key and the values of the entitlement.