Skip to content

AppTrackingTransparency macOS xcode27.2 b3

Alex Soto edited this page Oct 17, 2026 · 1 revision

#AppTrackingTransparency.framework

diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppTrackingTransparency.framework/Headers/ATTrackingManager.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppTrackingTransparency.framework/Headers/ATTrackingManager.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppTrackingTransparency.framework/Headers/ATTrackingManager.h	2026-08-08 19:57:53
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppTrackingTransparency.framework/Headers/ATTrackingManager.h	2026-10-04 01:51:29
@@ -89,9 +89,10 @@
 /// The request for user authorization to access app-related data.
 ///
 /// The ``ATTrackingManager/requestTrackingAuthorizationWithCompletionHandler:``
-/// is a one-time request to authorize or deny access to app-related data that
-/// can be used for tracking the user or the device. The system remembers the
-/// user’s choice and doesn’t prompt again unless a user uninstalls and then
+/// requests authorization to allow or deny access to app-related data that
+/// can be used for tracking the user or the device. In eligible regions, iOS users may be re-prompted
+/// after a year has passed since their last decision; otherwise the system remembers the
+/// user’s choice and doesn’t prompt again unless the user uninstalls and then
 /// reinstalls the app on the device.
 ///
 /// Calls to the API only prompt when the application state
@@ -115,6 +116,43 @@
 /// key must be in the
 /// <doc://com.apple.documentation/documentation/bundleresources/information_property_list>.
 + (void)requestTrackingAuthorizationWithCompletionHandler:(void(^)(ATTrackingManagerAuthorizationStatus status))completion;
+
+/// The request for user authorization to access app-related data with an optional expanded interface and its optional "Additional Information" button.
+///
+/// An alternative version of the ATT prompt with modified formatting and language and an expanded interface will be available for users in the European Union
+/// Pass `YES` to `preferExpandedInterface` to request the alternative prompt where permitted; pass `NO` to request the original prompt.
+///
+/// When available, the expanded interface provides you the option to use a text button labeled "Additional Information" to surface additional information about your request to the user.
+/// If you pass `nil` to `additionalInformationAction`, this button will not be shown.
+///
+/// If the user taps the "Additional Information" button, the prompt dismisses without recording an authorization decision, your `additionalInformationAction` runs so you can surface your own privacy information,
+/// and the completion handler receives ``ATTrackingManager/AuthorizationStatus/notDetermined``.
+///
+/// This method behaves identically to
+/// ``ATTrackingManager/requestTrackingAuthorizationWithCompletionHandler:`` in non-EU countries.
+///
+/// iOS users may be re-prompted in eligible regions on a periodic basis even
+/// after a previous authorization decision. If the user is not eligible to be re-prompted and a previous
+/// authorization decision exists, the completion handler is called with that prior decision
+/// without showing the prompt.
+///
+/// - Parameter preferExpandedInterface: Whether you want to show the alternative prompt with the expanded interface for users in the EU or not.
+/// Note that in France, Germany, Italy, Poland, and Romania, due to legal requirements, only the expanded interface version of the ATT prompt will be available regardless of what is passed in to `preferExpandedInterface`.
+/// - Parameter additionalInformationAction: The action taken after the user presses the "Additional Information" button (if the alternative prompt is shown). If this is nil, no button will be shown.
+///
+/// - Important: To use
+/// ``ATTrackingManager/requestTrackingAuthorizationPreferringExpandedInterface:additionalInformationAction:completionHandler:``,
+/// the <doc://com.apple.documentation/documentation/bundleresources/information_property_list/NSUserTrackingUsageDescription>
+/// key must be in the <doc://com.apple.documentation/documentation/bundleresources/information_property_list>.
+///
+/// In the alternative prompt, you will have the option to use bold and italic fonts, as well as bullet points and paragraph breaks, using
+/// <doc://com.apple.documentation/documentation/bundleresources/information_property_list/NSUserTrackingMarkdownUsageDescription>. If this key is not present,
+/// <doc://com.apple.documentation/documentation/bundleresources/information_property_list/NSUserTrackingUsageDescription> will be used instead.
++ (void)requestTrackingAuthorizationPreferringExpandedInterface:(BOOL)preferExpandedInterface
+                                    additionalInformationAction:(nullable void(^)(void))additionalInformationAction
+                                              completionHandler:(void(^)(ATTrackingManagerAuthorizationStatus status))completion
+    NS_SWIFT_NAME(requestTrackingAuthorization(preferExpandedInterface:additionalInformationAction:completionHandler:))
+    API_AVAILABLE(ios(27.2)) API_UNAVAILABLE(macos, tvos, watchos, visionos);
 
 // This class, at this time, should not be instantiated.
 + (instancetype)new NS_UNAVAILABLE;

Clone this wiki locally