title | weight |
---|---|
Adhere to the iOS 17+ Privacy Requirements |
140 |
In iOS 17, Apple added some new requirements to protect users from being targeted by finger-printing, a technique to uniquely identify a device even after a reinstall. Bad players used several APIs that are now being flagged when used.
There are currently five categories that are flagged:
- File timestamp APIs: APIs around file system monitoring, e.g. timestamps.
- System boot time APIs: APIs around uptime of the device.
- Disk space APIs: APIs about the remaining space on the device.
- Active keyboard APIs: APIs about active input modes.
- User defaults APIs: APIs around storing key-value data across app launches.
Some of the APIs used in Titanium are affected by these changes, e.g. Ti.Filesystem.File.createdAt
and Ti.App.Properties
/ Ti.App.iOS.UserDefaults
.
When using these APIs, you need to declare the reason(s) for using them inside a new PrivacyInfo.xcprivacy
file that can be edited inside Xcode.
For existing apps, you can download the default PrivacyInfo.xcprivacy here and place them into the following folder:
- Alloy apps: app/assets/iphone/
- Classic apps: Resources/iphone/
That's it! The Titanium build does the rest for you.
For new apps built with Titanium SDK 12.4.0 and later, the default PrivacyInfo.xcprivacy file is generated automatically for you.