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}