Understand and allowing control by users of what your collect is key for your users. Their privacy pillars align with GDRP and extend in to on-device processing and security protections.
New Tools
- There are new APIs in the Embedded Photo Picker, the Screen Capture Picker, a Write-Only calendar access, Oblivious http, and Communication Safety
- The photo picker allows the API to only access a subset of pictures, you can embed this picker into your app in iOS17 and macOS Sonoma
- If you use the new embedded picker, you will not have to request permissions
- Embed the Photos Picker in your App – check this session
- The new permissions dialog makes it very obvious what can be shared, and will periodically remind users what your app has access to
- Screen Capture Picker
- Prior to Sonoma you had to provide the whole screen, in Sonoma yet will not present a window picker on your behalf
- You will be able to record selected content for the duration.
- A screen sharing menu bar item will be displayed.
- What’s new in ScreenCaptureKit – session
- Calendar can now be set to only add items since it has a lot of private information from a users perspective
- EventKit will allow permission by default to create events.
- If you create your own API for creating entries you will have a new UI to request write only permission
- If you need full access you can ask once for upgrade – you will not be able to ask again
- For write only, you will be transition to this by default and if you use an old versions of EventKit it will only be asking for write
- Discover Calendar and EventKit –
- Oblivious HTTP API – hides client IP address from your server
- This will also hide data from network operators
- This may add additional challenges for your app, so you can now use OHTTP to help protect app usage – by separating the who from the what. This lightweight standard protocol allow the network operator to only see data to the relay – not the end point.
- This is already used by Private relay
- There are additional consideration is you use this, depending on your apps architecture
- Communication Safety – to address sensitive content
- This is the hide nudity protection from children. It has been expanded beyond messages, to Airdrop, Contact posters, photos picker, and Phone app.
- It is available for all users, not just kids
- This on device technology is available for apps to deal with sensitive data.
Platform Changes
- Mac App data protection, advanced data protection, safari private browsing and Safari app extensions
- Locations on Disk – have systems managed permission – like Desktop, Documents, and Downloads, some apps have data in other locations like ~/Library or ~/Library/Container
- You can now control that a user must give permission to allow an app to access data in a container from a different developer
- Use App Sandbox to protect data by your users
- You can ask for permission by default if you make no changes – it is valid for as long as your app is open, otherwise the permission will be reset. You should provide a meaningful purpose string.
- Use NSOpenPanel – outside of your process to allow a user to find the data before a user is prompted
- For backup or disk management tool that have already been provided Full Disk assess will not need to ask
- If you have the same signature across apps, you should have access to the data from your own other apps. You can specific a NSDataAccessSecurityPolicy to change from “Same Team” access.
- Advanced Data Protection – (added in 2022) to provide E2E encryption. If you use CloudKit you can get ADP for your app, when the user enabled ADP in their iCloud
- Use CKAsset and Encrypted variants for all data types in your app.
- Use the encryptedValues API to simplify the impact in your app
- Safari Private Browsing – enables protection from finger printing and advanced tracking protections (you can also turn this on for normal browsing)
- By default in private mode, known tracking methods are not allowed, you can see the blocking in the web inspector
- Tracking information on links is automatically stripped away
- There is a new permission model will be also users to decide on a per site basis if an extension can run and/or when in private browsing mode.
- Locations on Disk – have systems managed permission – like Desktop, Documents, and Downloads, some apps have data in other locations like ~/Library or ~/Library/Container
Spatial Input Model
- To achieve these goals hand and eyes are processed by an internal system component. So your app only get’s the tap or touch notice.