|
| 1 | +--- |
| 2 | +title: iOS 17 & Privacy Manifests |
| 3 | +strat: swift |
| 4 | +tags: |
| 5 | + - apple |
| 6 | + - swift |
| 7 | + - ios |
| 8 | +--- |
| 9 | + |
| 10 | +> info "" |
| 11 | +> iOS 17 and Xcode 15 are in beta. The information on this page is subject to change as these features become generally available. |
| 12 | +> |
| 13 | +
|
| 14 | +Apple has begun to roll out new privacy features that will eventually become mandatory in iOS 17. For instance, you may have already seen or worked with [Privacy Nutrition Labels](https://www.apple.com/privacy/labels/){:target="_blank"}. Privacy Nutrition Labels make it possible for users to better understand what information your app collects. Privacy Nutrition Labels is currently an optional feature, but Apple expects to make it [mandatory in the Spring of 2024](https://developer.apple.com/news/?id=z6fu1dcu#:~:text=And%20starting%20in%20spring%202024,your%20app%20uses%20the%20API.){:target="_blank"}. |
| 15 | + |
| 16 | +## Privacy manifests |
| 17 | + |
| 18 | +While developers are ultimately responsible for creating Privacy Nutrition Labels, it can be difficult to know exactly what their third-party SDKs track. To make this easier, Apple is introducting Privacy Manifests in iOS 17. Over the next few months, you can expect all of your app's third-party SDKs to include a Privacy Manifest. |
| 19 | + |
| 20 | +## Required Reason API |
| 21 | + |
| 22 | +To limit fingerprinting, Apple plans to have developers [dclare the reason for using specific APIs](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#overview){:target="_blank"}. The Analytics-Swift library only uses the [`userDefaults`](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278401){:target="_blank"} API to store user and context information. It is declared in the Privacy Manifest found in Analytics Swift. |
| 23 | + |
| 24 | +## Tracking domains |
| 25 | + |
| 26 | +Apple also introduces the concept of [NSPrivacyTrackingDomains](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files#4284009){:target="_blank"} to Privacy Manifests in iOS 17. This is an array of strings that lists the URLs the app connects to in order to aid in tracking. If the user hasn't granted tracking permission through the App Tracking Transparency framework, network requests to these domains fail and your app receives an error. The Analytics-Swift Privacy Manifest includes the endpoint Segment events are sent to. |
| 27 | + |
| 28 | +> info "" |
| 29 | +> If you set NSPrivacyTracking to `true`, then you need to provide at least one internet domain in NSPrivacyTrackingDomains; otherwise, you can provide zero or more domains. |
| 30 | +
|
| 31 | + |
| 32 | +## Analytics-Swift Privacy Manifest |
| 33 | + |
| 34 | +The Segment [Privacy Manifest for Analytics-Swift here]() includes an array of [Privacy Nutrition Label Types](https://developer.apple.com/app-store/app-privacy-details/#data-type){:target="_blank"} for the following automatically collected fields: |
| 35 | + |
| 36 | +| Data | Linked To User | Used For Tracking | Reason for Collection | |
| 37 | +| -------------------| ---------------| ------------------| ---------------------- | |
| 38 | +| `Advertising Data` | No | No | Developer's Advertising or Marketing | |
| 39 | +| `Precise Location` | Yes | No | Developer's Advertising or Marketing | |
| 40 | +| `App Version` | No | No | Developer's Advertising or Marketing | |
| 41 | +| `App Name` | No | No | Developer's Advertising or Marketing | |
| 42 | +| `Device ID` | Yes | No | Developer's Advertising or Marketing | |
| 43 | + |
| 44 | + |
| 45 | +## Additional privacy manifests |
| 46 | +- [Analytics-Swift Engage Plugin]() |
| 47 | +- [Analytics-iOS (Classic)]() |
| 48 | + |
| 49 | + |
| 50 | +## Generating your privacy report |
| 51 | + |
| 52 | +Follow the steps in Apple's [data use in privacy manifests documentation](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests){:target="_blank"} to generate your privacy report. Privacy manifests make it easier to account for the data collected by third-party SDKs but should not be considered as a comprehensive list for your privacy report. Your privacy report is also subject to your Segment tracking implementation. If you're not certain about all of the data you're collecting, [Protocols](/docs/protocols/) and a [Tracking Plan](/docs/protocols/tracking-plan/create/) can help you account for everything being tracked in your app. |
| 53 | + |
| 54 | +> success "" |
| 55 | +> Privacy manifests are not necessary for Device Mode Plugins, as Analytics-Swift doesn't collect any additional information or make any network requests to Segment endpoints in Destination Plugins. |
| 56 | +
|
| 57 | + |
| 58 | + |
0 commit comments