apple_bundle/entitlements/
app_clips.rs

1use serde::{Deserialize, Serialize};
2
3/// App Clips
4#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq, Default)]
5pub struct AppClips {
6    /// A list of parent application identifiers for an App Clip with exactly one entry.
7    ///
8    /// The Parent Application Identifiers entitlement establishes a secure association
9    /// between an App Clip and its corresponding app Add it only to an App Clip
10    /// target.
11    ///
12    /// ### Note
13    /// When you add an App Clip target to your project as described in Creating an App
14    /// Clip with Xcode, Xcode creates this entitlement and adds the correct value.
15    ///
16    /// Because an App Clip is always associated with exactly one app, ensure the parent
17    /// application entitlement has exactly one entry, the corresponding app’s
18    /// application identifier.
19    ///
20    /// Ensure that the application identifier for the App Clip uses the full app’s
21    /// application identifier as its prefix, followed by a string.
22    /// For example, if your app’s application identifier is
23    /// $(AppIdentifierPrefix)com.example. MyApp, the App Clip’s application
24    /// identifier may be $(AppIdentifierPrefix)com.example.MyApp.Clip.
25    ///
26    /// ## Availability
27    /// * iOS 14.0+
28    ///
29    /// ## Framework
30    /// * App Clip
31    #[serde(
32        rename = "com.apple.developer.parent-application-identifiers",
33        serialize_with = "crate::serialize_option",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub parent_application_identifiers: Option<Vec<String>>,
37    /// A Boolean value that indicates whether a bundle represents an App Clip.
38    ///
39    /// Adding an App Clip target to your project as described in Creating an App Clip
40    /// with Xcode enables a capability called On Demand Install Capable for the App
41    /// Clip target.
42    ///
43    /// When you code-sign your full app, Xcode embeds the App Clip in the full app and
44    /// applies the com.apple.developer.on-demand-install-capable entitlement.
45    /// Because of this behavior, the App Clip’s .entitlements file doesn’t include this
46    /// entitlement if you open the file in Xcode’s Project navigator.
47    ///
48    /// To see the entitlement in the .entitlements file, first archive the full app, then
49    /// export the App Clip for distribution as described in Distributing Your App
50    /// Clip. Next, open the Terminal app and run codesign -d --entitlements :-
51    /// /path/to/ExampleApp.app/AppClips/ExampleAppClip.app.
52    ///
53    /// ## Availability
54    /// * iOS 14.0+
55    ///
56    /// ## Framework
57    /// * App Clip
58    #[serde(
59        rename = "com.apple.developer.on-demand-install-capable",
60        serialize_with = "crate::serialize_option",
61        skip_serializing_if = "Option::is_none"
62    )]
63    pub on_demand_install_capable: Option<bool>,
64}