Networking

Struct Networking 

Source
pub struct Networking {
    pub network_extensions: Option<Vec<NetworkExtensions>>,
    pub personal_vpn: Option<Vec<PersonalVPN>>,
    pub associated_domains: Option<Vec<String>>,
    pub networking_multicast: Option<bool>,
    pub associated_domains_applinks_read_write: Option<bool>,
}
Expand description

Networking

Fields§

§network_extensions: Option<Vec<NetworkExtensions>>

The APIs an app can use to customize networking features.

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.

§Availability

  • iOS 9.0+
  • macOS 10.11+

§Framework

  • Network Extension
§personal_vpn: Option<Vec<PersonalVPN>>

The API an app can use to create and control a custom system VPN configuration.

With the Personal VPN Entitlement enabled, your app can use the NEVPNManager class to manage a Personal VPN configuration.

To add this entitlement to your app, enable the Personal VPN capability in Xcode. When the entitlement is enabled, Xcode sets the value to allow-vpn.

§Availability

  • iOS 8.0+
  • macOS 10.10+

§Framework

  • Network Extension
§associated_domains: Option<Vec<String>>

The associated domains for specific services, such as shared web credentials, universal links, and App Clips.

This key specifies a list of domains for each service enabled. Add an associated domain to the list in the following format:

<service>:<fully qualified domain>
§Services include:
  • webcredentials

Use this service for shared web credentials.

  • applinks

Use this service for universal links.

  • activitycontinuation

Use this service for Handoff.

  • appclips

Use this service for an App Clip.

§Note

In macOS 11 and later and iOS 14 and later, apps request apple-app-site-association files from an Apple-managed content delivery network (CDN) dedicated to associated domains, instead of directly from your web server. If the CDN has an old version of the file, or doesn’t already have a copy of the file, it connects to your web server to obtain the latest version.

While developing your app, if you use a private web server that’s unreachable from the public internet, you can use the alternate mode feature to bypass the CDN and connect directly to your private domain. Add a query string to your associated domains entitlement as follows:

<service>:<fully qualified domain>?mode=<alternate mode>

Where alternate mode is one of the following:

  • developer

Specifies that only devices in developer mode can access the domain. In this mode, you can use any valid SSL certificate on your web server, including a certificate the system doesn’t trust. Make sure you don’t expose your users to security issues, such as man-in-the-middle attacks. As an added precaution, only apps signed with a development profile can use developer mode, and users must opt in on any device they use.

  • managed

Specifies that only devices managed with a mobile device management (MDM) profile can access the domain. This mode requires consent from the MDM administrator.

  • developer+managed

Specifies that only devices that are in both developer and managed modes at the same time can access the domain.

To add this entitlement to your app, enable the Associated Domains capability in Xcode.

§Availability

  • iOS 9.0+
  • macOS 10.15+
  • tvOS 9.0+
  • watchOS 6.0+

§Framework

  • Security
§networking_multicast: Option<bool>

A Boolean value that indicates whether an app can send or receive IP multicast traffic.

Your app must have this entitlement to send or receive IP multicast or broadcast on iOS. It also allows your app to browse and advertise arbitrary Bonjour service types.

This entitlement requires permission from Apple before you can use it in your app. Request permission from the Multicast Networking Entitlement Request page.

§Availability

  • iOS 14.0+
  • macOS 11.0+
  • tvOS 14.0+

§Framework

  • Network
§associated_domains_applinks_read_write: Option<bool>

§Availability

  • macOS 10.15+

§Framework

  • Security

Trait Implementations§

Source§

impl Clone for Networking

Source§

fn clone(&self) -> Networking

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Networking

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Networking

Source§

fn default() -> Networking

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Networking

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Networking

Source§

fn eq(&self, other: &Networking) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Networking

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for Networking

Source§

impl StructuralPartialEq for Networking

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,