From 6bb8782107473399fd07ce8ff60c2ec8a0b7b3d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hans=20Kn=C3=B6chel?= Date: Sun, 17 Mar 2024 20:36:52 +0100 Subject: [PATCH] feat: add docs for the new iOS 17+ privacy requirements --- docs/.vuepress/guide.json | 4 +- ...dhere_to_the_iOS17_Privacy_Requirements.md | 42 +++++++++++++++++++ ..._a_Titanium_Application_to_the_Platform.md | 35 ---------------- .../PrivacyInfo.xcprivacy | 17 ++++++++ 4 files changed, 61 insertions(+), 37 deletions(-) create mode 100644 docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements.md delete mode 100644 docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Migrate_a_Titanium_Application_to_the_Platform.md create mode 100644 docs/guide/Titanium_SDK/Titanium_SDK_How-tos/PrivacyInfo.xcprivacy diff --git a/docs/.vuepress/guide.json b/docs/.vuepress/guide.json index f8fa32d7513..1195475b4fb 100644 --- a/docs/.vuepress/guide.json +++ b/docs/.vuepress/guide.json @@ -1071,8 +1071,8 @@ ] }, [ - "Titanium_SDK_How-tos/Migrate_a_Titanium_Application_to_the_Platform", - "Migrate a Titanium Application to the Platform" + "Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements", + "Adhere to the iOS 17+ Privacy Requirements" ], { "title": "Titanium Boilerplates", diff --git a/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements.md b/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements.md new file mode 100644 index 00000000000..e1d76ce7b66 --- /dev/null +++ b/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements.md @@ -0,0 +1,42 @@ +--- +title: Adhere to the iOS 17+ Privacy Requirements +weight: '140' +--- + +# Adhere to the iOS 17+ Privacy Requirements + +## Overview + +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. + +## Required Steps + +### Existing Apps + +For existing apps, you can download the default [PrivacyInfo.xcprivacy here](./PrivacyInfo.xcprivacy) 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. + +### New Apps + +For new apps built with Titanium SDK 12.4.0 and later, the default PrivacyInfo.xcprivacy file is generated automatically for you. + +## More Details + +- [Apple: Privacy manifest files](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files?language=objc) +- [Apple: Describing use of required reason API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) diff --git a/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Migrate_a_Titanium_Application_to_the_Platform.md b/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Migrate_a_Titanium_Application_to_the_Platform.md deleted file mode 100644 index 4b6592987db..00000000000 --- a/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/Migrate_a_Titanium_Application_to_the_Platform.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Migrate a Titanium Application to the Platform -weight: '140' ---- - -# Migrate a Titanium Application to the Platform - -## Titanium Community Analytics, ACS and Push, and Node.ACS Deactivation - -On October 3, 2016, Appcelerator shut down its community analytics, ACS & Push, and Node.ACS servers. - -For continued cloud services, please login at [https://billing.axway.com/billing](https://billing.axway.com/billing) and adjust to your account as needed. - -## Migrate a Titanium Application to the Platform - -Before you can use your Titanium apps with the Platform, you'll need to import them. Don't worry, it's quick and painless! - -### First, make a backup! - -It's always a good idea to make a backup of your project or make sure you have a clean Git project before continuing with changes below. The import process will modify the project's `tiapp.xml` file. - -The import process will create a new GUID for your application and attempt to activate Platform services unless it is an existing Platform app. The new GUID is required to send analytic data to the Platform servers. You can use the [Titanium CLI](/guide/Titanium_SDK/Titanium_SDK_Guide/Titanium_Command-Line_Interface_Reference/) to import your existing Titanium app. - -### Replace or keep existing ACS keys - -By default, the import process will generate new keys for Arrow DB services in the `tiapp.xml` file. If the application was already integrated with ACS for push notifications and/or data, answer no if asked if you want to replace the keys or change the `acs-api-key-*` keys back when it is done. - - -### Using Titanium CLI - -Follow these steps and your app will be imported into the Platform. - -1. First, verify that you have the [Titanium CLI](/guide/Titanium_SDK/Titanium_SDK_Guide/Titanium_Command-Line_Interface_Reference/) installed. If you are using the Titanium CLI, this procedure will not work. - -2. Once installed, you can import your existing Titanium app by running the following in your console from the Titanium project directory: `ti create --import` diff --git a/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/PrivacyInfo.xcprivacy b/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/PrivacyInfo.xcprivacy new file mode 100644 index 00000000000..5681a271ba8 --- /dev/null +++ b/docs/guide/Titanium_SDK/Titanium_SDK_How-tos/PrivacyInfo.xcprivacy @@ -0,0 +1,17 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPITypeReasons + + AC6B.1 + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + + + +