Skip to content

Commit 35dfc76

Browse files
authored
Merge pull request #5197 from segmentio/ios-17
feat: add ios 17 documentation [netlify-build]
2 parents d46e61e + 99537ab commit 35dfc76

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ruby 2.7.8

src/_data/sidenav/strat.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@ sections:
217217
title: Typewriter for Swift
218218
- path: /connections/sources/catalog/libraries/mobile/apple/swift-destination-filters
219219
title: Destination Filters for Swift
220+
- path: /connections/sources/catalog/libraries/mobile/apple/ios-17
221+
title: iOS 17 & Privacy Manifests
220222

221223
- slug: node-js
222224
section_title: Analytics-Node.js Documentation
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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

Comments
 (0)